Questionnaire Overview
RegScale Questionnaire System - Overview
Executive Summary
The RegScale Questionnaire System is an enterprise-grade data collection and assessment platform designed for compliance, risk management, and attestation workflows. It provides dynamic question rendering, conditional logic via a powerful rule engine, automated scoring, flexible assignment options, and comprehensive workflow integrations.
Table of Contents
- Core Concepts
- Assignment Options
- Scoring System
- Rule Engine
- Workflow & States
- Question Types
- Key Features
- Technical Architecture
Core Concepts
Questionnaires vs. Instances
Questionnaire (Template)
- The master template containing questions, rules, and configuration
- Reusable across multiple assignments
- Defines structure, scoring rules, and conditional logic
- Stored in
Questionnairestable
Questionnaire Instance (Response)
- A specific assignment of a questionnaire to one or more users
- Contains actual responses and completion data
- Tracks workflow state (Open → Submitted → Accepted/Rejected)
- Stored in
QuestionnaireInstancestable
Questions
Individual questions within a questionnaire with properties:
- QUID: Unique question identifier within the questionnaire
- Prompt: The question text displayed to users
- Question Type: Text, Number, Date, Dropdown, Table, etc.
- Section: Organizational grouping
- Required: Validation flag
- Scoring: Max score and answer option scores
- Conditional: Can be shown/hidden by rules
Assignment Options
The questionnaire system supports multiple assignment mechanisms to accommodate different use cases:
1. User-Based Assignment
Assign to internal users within your RegScale tenant.
Features:
- Select multiple assignees from user directory
- Each assignee receives email notification with unique link
- Supports per-user tracking and completion monitoring
- Assignee dashboard shows pending questionnaires
Use Case: Internal compliance surveys, employee attestations
2. Email-Based Assignment
Send questionnaires to external email addresses.
Features:
- Comma-separated email list support
- External users don't need RegScale accounts
- Optional: Require login or use access code only
- 9-digit access codes for security
- Bulk assignment via Excel upload
Use Case: Vendor assessments, external audits, customer feedback
3. Module-Based Assignment
Link questionnaires to specific records in other modules.
Features:
- Attach to assets, risks, controls, or any module record
- Contextual questionnaires tied to parent record
- Multiple questionnaires per parent record
- Accessible from parent record's subsystems tab
Use Case: Asset-specific assessments, risk evaluations, control testing
4. Self-Assignment (Public URLs)
Allow users to self-assign questionnaires via public link.
Features:
- Enable with
AllowPublicUrlsetting - Public URL:
/questionnaires/response/{UUID} - Optional login requirement
- Access code protection for anonymous users
- Anonymous response tracking
Use Case: Public surveys, registration forms, self-service assessments
5. Recurring Assignments
Automate questionnaire delivery on a schedule.
Features:
- Recurrence patterns: Weekly, Monthly, Quarterly, Yearly
- Define start and end dates
- Automatic instance creation
- Email notifications on each occurrence
- Tracks last sent date
Use Case: Periodic compliance reviews, quarterly attestations, monthly check-ins
6. Bulk Assignment via Excel
Upload an Excel file to assign to multiple users at once.
Excel Format:
- Column A: Assignee email (required)
- Column B: Reviewer emails, comma-separated (optional)
- Column C: Due date (optional)
- Column D: Title override (optional)
Features:
- Mass distribution to hundreds/thousands of users
- Per-row customization (different reviewers, due dates)
- Validation and error reporting
Use Case: Organization-wide surveys, department-specific assessments
Per-Question Assignment
Beyond instance-level assignment, you can assign specific questions to specific users.
Features:
- Enable with
EnableQuestionAssignmentsetting - Assign individual questions to different users
LimitQuestionAssigneesToAssignedQuestions: Restrict users to only their questions- Collaborative questionnaires with distributed responsibility
Use Case: Multi-stakeholder assessments where different teams answer different sections
Scoring System
The questionnaire system supports sophisticated scoring mechanisms at both question and instance levels.
Question-Level Scoring
Multiple Choice / Dropdown Questions
Each answer option has an associated score:
{
"StaticAnswerOptions": [
{ "AnswerOption": "Excellent", "AnswerScore": 10 },
{ "AnswerOption": "Good", "AnswerScore": 7 },
{ "AnswerOption": "Fair", "AnswerScore": 4 },
{ "AnswerOption": "Poor", "AnswerScore": 0 }
]
}
Scoring: Response score = selected option's score
Checkbox Questions (Multi-Select)
Sum of all selected options' scores.
Example:
- Select "Option A (10)" + "Option B (5)" = 15 points total
Table Questions
Complex scoring based on column configuration:
- Each column can have a base score
- Dropdown columns use option-specific scores
- Total score = sum of all filled cells with scoring
- Row-level aggregation
Manual Scoring
The ResponseScore field can be manually set to override calculated scores, useful for subjective assessments or grading by reviewers.
Instance-Level Scoring
Calculation Process:
- Calculate individual question scores
- Set
CalculatedScorefor each question - If
ResponseScoreis empty, useCalculatedScore - Sum all question scores (excluding Instructional questions)
- Store total in instance's
Scorefield
Max Scores:
- Each question defines
MaxScore(maximum possible points) - Used to calculate percentage: (Score / MaxScore) × 100
- Displayed as progress indicators
Grading
Beyond numeric scores, questionnaires support letter grades or pass/fail results:
- Grade Field: String value (e.g., "Pass", "Fail", "A", "B", "C")
- Manual Grading: Reviewers can set grades manually
- Rule-Based Grading: Rules can automatically set grades based on score thresholds
- Display Options: Can be shown/hidden via rule actions
Example Grade Rules:
- Score ≥ 90: Set grade to "A"
- Score ≥ 80: Set grade to "B"
- Score ≥ 70: Set grade to "C"
- Score < 60: Set grade to "Fail"
Enabling Scoring
Set EnableScoring = true on the questionnaire template to activate scoring features. Rules can further control display with:
SETDISPLAYOPTIONS('displayscore=true')
Rule Engine
The questionnaire rule engine is a visual authoring tool for creating conditional logic without coding. It enables dynamic questionnaires that adapt based on user responses.
What Rules Can Do
Rules consist of Conditions (WHEN) and Actions (WHAT):
Example Business Logic:
- "If user selects 'Yes' for PII collection, show additional PII handling questions"
- "If risk level is 'High', add 10 points to the score"
- "If total score exceeds 75, set grade to 'Pass'"
- "If no parent record exists, hide compliance-specific questions"
Rule Components
Conditions (WHEN to Execute)
Condition Types:
-
QUESTION-based
- Check question responses:
@QUID.response == 'Yes' - Check question properties:
@QUID.required == true - Operators: Equals, Contains, Greater Than, Less Than, etc.
- Check question responses:
-
SCORE-based
- Check current total score:
@__SCORE__ > 75 - Thresholds for grading
- Check current total score:
-
GRADE-based
- Check assigned grade:
@__GRADE__ == 'Pass'
- Check assigned grade:
-
SYSTEM-based
NO_PARENT: Check if no parent record existsNO_CONDITION: Always execute (unconditional actions)
Conditional Logic:
- AND: All conditions must be true
- OR: Any condition can be true
Supported Operators:
- Comparison:
EQUALS,NOT_EQUALS,LESS_THAN,GREATER_THAN - String:
CONTAINS,NOT_CONTAINS,STARTS_WITH,ENDS_WITH - List:
IN,NOT_IN - Null:
IS_EMPTY,IS_NOT_EMPTY - Date:
BEFORE,AFTER,WITHIN_LAST,WITHIN_NEXT,BETWEEN
Actions (WHAT to Do)
Available Actions:
- SHOW_QUESTIONS - Make questions visible
- HIDE_QUESTIONS - Make questions invisible (skip validation)
- ENABLE_QUESTIONS - Make questions editable
- DISABLE_QUESTIONS - Make questions read-only
- SET_ANSWER - Auto-populate question response
- CLEAR_ANSWER - Remove question responses
- SET_SCORE - Set total score to specific value
- ADD_TO_SCORE - Add/subtract from current score
- CALCULATE_TOTAL_SCORE - Calculate score from all responses
- SET_GRADE - Set questionnaire grade
- REPEAT_QUESTIONS - Dynamically repeat question sets
- SET_DISPLAY_OPTIONS - Control display of score/grade
Visual Rule Builder
The rule builder provides a drag-and-drop interface:
Features:
- Visual condition builder with dropdowns for questions, operators, values
- Multiple conditions with AND/OR logic
- Multiple actions per rule
- Rule ordering and prioritization
- Inline validation with real-time error highlighting
- Test mode with execution simulation
Storage Format:
- Database: Newline-delimited JSON (one rule per line)
- UI: Structured TypeScript objects with UUIDs
Test Mode
Before deploying rules, use Test Mode to simulate execution:
Features:
- Render all questions with input controls
- Execute rules with sample test data
- Display detailed execution log:
- Which rules executed vs. skipped
- Which conditions matched (✓/✗)
- Which actions fired
- Final question state (visible/hidden, enabled/disabled)
- Final score and grade
Example Output:
✅ Rule "Show PII Questions" EXECUTED
✓ Condition: "PII Collected" equals "Yes" (Answer: "Yes")
✓ Action: Showed 3 questions (PII_TYPE, PII_STORAGE, PII_ENCRYPTION)
⏭️ Rule "High Risk Bonus" SKIPPED
✗ Condition: "Risk Level" equals "High" (Answer: "Medium")
✅ Rule "Calculate Final Score" EXECUTED
✓ Condition: NO_CONDITION (always true)
✓ Action: Calculated total score = 85
✓ Action: Set grade to "Pass"
Validation System
The rule engine validates rules in real-time:
Validation Rules:
- Rule name required
- At least one condition required
- At least one action required
- Referenced questions must exist in questionnaire
- Operators must match question types (e.g., numeric operators for number questions)
- Values required for most operators (except
IS_EMPTY) - Circular dependency detection
UI Feedback:
- Red borders on invalid fields
- Error badges on rule cards
- Validation summary modal before save
- Tooltips with specific error details
Rule Execution
Rules execute in the Angular frontend during questionnaire response:
Execution Flow:
- User loads questionnaire instance
- System parses rules from database (newline-delimited JSON →
Rule[]) - Rules execute in defined order
- For each rule:
- Evaluate conditions by replacing variable references with actual values
- If all conditions pass, execute actions
- Apply UI changes (show/hide, set values, calculate scores)
- Re-evaluate rules when question responses change
Performance Optimization:
- Execution constraints:
RESPONSECHANGE('QUID')- only re-run rule when specific question changes - Prevents unnecessary computation on every keystroke
Documentation
For detailed technical information, see:
- User Guide:
questionnaire-rules-user-guide.md - Technical Guide:
questionnaire-rule-builder-technical-guide.md
Workflow & States
Questionnaire instances progress through a multi-state workflow enabling submit/review/approval cycles.
Instance States
-
Open - Initial state after assignment
- Assignee can edit responses
- Auto-saves as user progresses
- Can submit for review when complete
-
Submitted - Assignee submitted for review
- Read-only for assignee
- Reviewer receives notification
- Awaiting reviewer action
-
Accepted - Reviewer approved
- Questionnaire complete
- Historical snapshot saved
- Can be closed or archived
-
RequestChanges - Reviewer rejected
- Feedback provided to assignee
- Assignee receives notification with comments
- Can reopen for editing
-
Closed - Final archived state
- Locked from editing
- Permanent record
State Transition Flow
Created
↓
Open ←──────────────────┐
↓ │
Submitted │
↓ │
Accepted or RequestChanges │
│ │
└──────────────────────┘ (reopen)
↓
Closed
Reviewer Workflow
Current State: Single reviewer per instance
- Reviewer receives email when questionnaire is submitted
- Can approve (
Accepted) or reject (RequestChanges) - Can provide feedback/comments to assignee
- Feedback triggers email notification to assignee
Planned Enhancement: Multiple reviewers
- Any reviewer can approve/reject ("First Approval Wins")
- Documented in
multiple-questionnaire-reviewers-implementation-plan.md
History Tracking
Automatic Snapshots:
- When instance transitions to
Submitted - When instance transitions to
Accepted - Stores full copy of all responses (
JsonData)
QuestionnaireHistoryEntry Table:
QuestionnaireInstanceId- Links to instanceJsonData- Complete response snapshotDiscriminator- State when snapshot taken- Audit fields (CreatedBy, DateCreated)
Use Cases:
- Audit trail for compliance
- Version history for change tracking
- Rollback capability
- Before/after comparison
Email Notifications
Notification Types:
-
Assignment Notification
- Sent to assignees when instance created
- Contains unique response link
- Includes due date, title, instructions
-
Reviewer Notification
- Sent to reviewer when submitted
- Contains review link
- Shows assignee name, completion date
-
Feedback Email
- Sent to assignees when reviewer provides feedback
- Contains reviewer comments
- Link to view feedback and resubmit
-
Reopen Notification
- Sent when instance is reopened
- Notifies assignee to resume work
-
Reminder Emails (if configured)
- Approaching due date notifications
- Overdue notifications
Completion Tracking
Calculation:
- Count required questions that are visible (not hidden by rules)
- Count answered required questions
- Special handling for table questions:
- If table has required columns, count filled required cells
- If table is required but has no required columns, count if any cell is filled
- Formula:
PercentComplete = (answered / total) × 100
Display:
- Progress bar on instance view
- Percentage indicator
- Blocks submission until 100% complete (configurable)
Question Types
The questionnaire system supports diverse question types for comprehensive data collection:
1. Text
- Free-form text input
- Multi-line support
- No validation constraints
Use Case: Comments, descriptions, explanations
2. Number
- Numeric input with validation
- Decimal support
- Min/max constraints (optional)
Use Case: Counts, measurements, percentages
3. Date
- Date picker control
- Validates date format
- Can set min/max date ranges
Use Case: Start dates, end dates, deadlines
4. Email
- Email format validation
- Single email address
Use Case: Contact information, email collection
5. PhoneNumber
- Phone number format validation
- International format support
Use Case: Contact numbers, emergency contacts
6. MultipleChoice (Radio Buttons)
- Single selection from predefined options
StaticAnswerOptionswith scores- Visual radio button group
Use Case: Yes/No questions, single-choice selections, ratings
7. CheckBoxes (Multi-Select)
- Multiple selections allowed
- Each option has independent score
- Sum of selected option scores
Use Case: "Select all that apply", feature selections, multi-category
8. Dropdown (Select)
- Single selection from dropdown menu
- Space-efficient for many options
StaticAnswerOptionswith scores
Use Case: State/country selection, category selection, status
9. Table
- Dynamic grid for structured data
- Configurable columns via
TableConfig - Column types: Text, Number, Date, Dropdown
- Row-level add/delete
- Column-level scoring
- Required column validation
Table Configuration:
{
"TableColumns": [
{
"Title": "System Name",
"DataType": "text",
"Required": true,
"Score": 0
},
{
"Title": "Risk Level",
"DataType": "dropdown",
"Required": true,
"Score": 5,
"DropdownOptions": [
{ "Value": "High", "Score": 10 },
{ "Value": "Medium", "Score": 5 },
{ "Value": "Low", "Score": 2 }
]
},
{
"Title": "Last Assessment",
"DataType": "date",
"Required": false,
"Score": 0
}
]
}
Use Case: Asset inventories, system lists, multi-row data collection
10. Instructional
- Display-only content
- No response collected
- No validation required
- Supports rich text/HTML
Use Case: Instructions, section headers, guidance text, warnings
Key Features
1. Section Management
Organize questions into logical sections:
- Visual section dividers
- Section-based navigation
- Collapsible sections
- Section ordering via
SectionIndex
Benefits:
- Improved user experience for long questionnaires
- Logical grouping of related questions
- Easier navigation and progress tracking
2. Control Mappings
Link questions to security control frameworks:
Features:
- Map questions to NIST 800-53, ISO 27001, CIS, etc.
- Junction table:
questionControl - Stores control family, ID, title
- Responses automatically linked as control evidence
Use Cases:
- Compliance assessments tied to controls
- Automated evidence collection
- Control effectiveness testing
- Audit preparation
Storage:
- Responses saved as
Propertiesrecords SecondaryId= Security Control IDSecondaryModule= "security-controls"- Accessible from control's evidence tab
3. Properties Storage (Dual Model)
Questionnaire responses are stored in two formats:
1. JsonData (Structured)
- Full question/response structure stored in instance
- Preserves question metadata, sections, ordering
- Used for display and editing
2. Properties Table (Flattened)
- Key/value pairs for each question/answer
- Enables cross-module search and reporting
- Report Builder integration
Properties Structure:
ParentId: QuestionnaireInstance.Id
ParentModule: "questionnaireinstances"
Key: Question.QUID
Value: Question.Response
Label: Question.Prompt
SecondaryId: SecurityControlId (if mapped)
SecondaryModule: "security-controls"
4. Anonymous Access
Enable public questionnaires without login requirements:
Configuration:
LoginRequired = falseon questionnaireAllowPublicUrl = trueenables self-assignment- 9-digit random access codes
Security:
- Unique access code per instance
- Code required for anonymous users
- Audit logging of access attempts
- Optional: Still require login for authenticated tracking
Flow:
- User visits
/questionnaires/response/{UUID} - If not authenticated and
LoginRequired = false, prompt for access code - Validate access code matches instance
- Allow questionnaire response
- Save responses anonymously (or to authenticated user if logged in)
Use Cases:
- Public surveys
- Customer feedback forms
- Vendor self-assessments
- Registration forms
5. Import/Export Capabilities
Import (Upload)
Upload questionnaire templates via Excel:
Service: ParseUploadedQuestionnaire()
Excel Format:
- Columns: Question Text, Section, Question Type, Required, Answer Options, etc.
- Creates questionnaire + all questions in single operation
- Validates question types and configurations
Use Case: Bulk questionnaire creation from existing surveys, templates, or legacy systems
Export
Export Types:
-
Questionnaire Template Export
- Excel format with all questions
- Includes configuration, scoring, sections
-
Single Response Export
- Individual instance with responses
- Formatted for readability
-
Bulk Response Export
- Multiple instances in one workbook
- One sheet per instance or consolidated view
-
All Responses Export
- All instances for a questionnaire
- Comparative analysis format
Format: Excel (.xlsx) using SyncFusion libraries
Features:
- Question/answer pairs
- Metadata (assignee, reviewer, dates, score, grade)
- Section organization
- Professional formatting
6. Metadata Headers
Custom metadata fields beyond questions:
QuestionnaireHeader Entity:
- Define custom fields for instances
- Field types: Text, User, Dropdown
- Dropdown options configurable
- Stored in
HeaderValuesJsonon instance
Use Cases:
- Project codes
- Department identifiers
- Custom categorization
- Additional context not part of questionnaire questions
Example:
[
{ "Title": "Project Code", "HeaderType": "text" },
{ "Title": "Department", "HeaderType": "dropdown", "DropdownOptions": ["IT", "Finance", "HR"] },
{ "Title": "Approver", "HeaderType": "user" }
]
7. Recurring Assignments
Automate questionnaire delivery on schedules:
QuestionnaireRecurringAssignment Table:
QuestionnaireId- Template to deliverEmail- Recipient addressStartDate,EndDate- Active periodRecurrence- Weekly, Monthly, Quarterly, YearlyLastSent- Tracks last execution
Automation:
- Background job checks for due recurring assignments
- Creates new instance automatically
- Sends assignment email to recipient
- Updates
LastSenttimestamp
Use Cases:
- Quarterly compliance attestations
- Monthly security reviews
- Annual employee surveys
- Weekly status reports
8. Report Builder Integration
Questionnaire data is accessible in Report Builder via the QuestionnaireResponseEntity:
Features:
- Virtual entity joining Properties, Instances, Questionnaires
- Flattened structure for reporting
- Filter by questionnaire, assignee, date range, score, grade
- Aggregate functions (count, average score, etc.)
Use Cases:
- Compliance dashboards
- Trend analysis over time
- Comparative reports (department, location, etc.)
- Score distribution charts
Technical Architecture
Backend (C# .NET)
Controllers:
QuestionnairesController- Template CRUD and operationsQuestionnaireInstancesController- Instance CRUD and workflow
Services:
QuestionnaireService- Business logic, assignment, emailQuestionnaireScoreCalculationService- Scoring algorithmsQuestionnaireExportService- Excel export functionality
Entities:
Questionnaires- TemplatesQuestionnaireInstances- ResponsesQuestion- Questions within templatesQuestionnaireInstanceAssignee- Many-to-many assigneesQuestionAssignee- Per-question assignmentsQuestionnaireHistoryEntry- Historical snapshotsQuestionnaireRecurringAssignment- Scheduled deliveryQuestionnaireHeader- Metadata fieldsquestionControl- Control mappings
Patterns:
- Repository pattern for data access
- Service layer for business logic
- Multi-tenancy with tenant isolation
- Soft delete (IsDeleted flag)
- Audit trails (CreatedBy, UpdatedBy, DateCreated, DateLastUpdated)
Frontend (Angular)
Components:
questionnaire-builder- Template builder interfacequestionnaire-rule-builder- Visual rule editorquestionnaire-response- Response interface (rule execution)questionnaire-unified- Combined response/review interfacequestionnaire-assignments- Assignment managementquestionnaire-self-assign- Self-assignment form
Services:
questionnaire.service.ts- API client for templatesquestionnaireInstance.service.ts- API client for instancesquestionnaire-rule.service.ts- Rule conversion, validation, executionquestionnaireOptions.service.ts- Metadata and options
Rule Execution:
- Client-side execution in Angular
- Real-time evaluation as user responds
- JavaScript eval (sandboxed) for condition evaluation
- DOM manipulation for show/hide actions
API Endpoints
Questionnaires:
GET /api/questionnaires/getList- List templatesGET /api/questionnaires/{id}- Get templatePOST /api/questionnaires/create- Create templatePUT /api/questionnaires/{id}- Update templateDELETE /api/questionnaires/{id}- Delete templatePOST /api/questionnaires/bulkUpdate/{id}- Update sections/questionsPOST /api/questionnaires/createInstancesFromQuestionnaires[v2.0] - Create instancesPOST /api/questionnaires/selfAssignQuestionnaire- Self-assignmentPOST /api/questionnaires/createRecurringAssignment- Create schedulePOST /api/questionnaires/upload- Upload Excel templatePOST /api/questionnaires/uploadBulkEmailAssignment/{id}- Bulk assign via ExcelGET /api/questionnaires/exportQuestionnaire/{id}- Export templateGET /api/questionnaires/exportAllResponses/{id}- Export all responses
Instances:
GET /api/questionnaireInstances/{id}- Get instancePOST /api/questionnaireInstances[v2.0] - Create instancePUT /api/questionnaireInstances/{id}- Update instanceDELETE /api/questionnaireInstances/{id}- Delete instancePOST /api/questionnaireInstances/filterQuestionnaireInstances- List/searchGET /api/questionnaireInstances/getAllByParent/{id}- Instances for templatePOST /api/questionnaireInstances/link- Get instance for responsePUT /api/questionnaireInstances/updateResponses/{uuid}- Save responsesPUT /api/questionnaireInstances/submitForFeedback/{uuid}- Submit for reviewPUT /api/questionnaireInstances/changeStateAccepted/{uuid}- ApprovePUT /api/questionnaireInstances/changeStateRejected/{uuid}- RejectPUT /api/questionnaireInstances/reopenInstance/{uuid}- ReopenGET /api/questionnaireInstances/history/{id}- Get history entriesPOST /api/questionnaireInstances/assignQuestions/{id}- Assign questions to users
Database Schema
Key Tables:
Questionnaires- Templates with Rules, Sections JSONQuestionnaireInstances- Responses with JsonData, Score, GradeQuestion- Questions with QUID, QuestionType, StaticAnswerOptions JSONQuestionnaireInstanceAssignee- Junction table for multiple assigneesQuestionAssignee- Per-question user assignmentsQuestionnaireHistoryEntry- Historical snapshotsQuestionnaireRecurringAssignment- Scheduled delivery configurationQuestionnaireHeader- Metadata field definitionsquestionControl- Question to security control mappingsProperties- Flattened key/value storage for reporting
Indexes:
QuestionnaireInstances.ParentQuestionnaireId- Fast instance lookupQuestion.ParentQuestionnaireId- Fast question lookupProperties.ParentId,Properties.ParentModule- Fast property lookup- Tenant isolation via
TenantsIdon all entities
Related Documentation
questionnaire-rule-builder-technical-guide.md- Comprehensive technical guide for rule builder architecturequestionnaire-rules-user-guide.md- End-user guide for creating and testing rulesmultiple-questionnaire-reviewers-implementation-plan.md- Plan for multiple reviewer support- Module Configuration:
atlas/Launcher/Seed/ModuleData/questionnaire.json- Template module configatlas/Launcher/Seed/ModuleData/questionnaireInstances.json- Response module config
Summary
The RegScale Questionnaire System is a production-ready, enterprise-grade solution offering:
Flexibility:
- 10 question types including dynamic tables
- Multiple assignment mechanisms (user, email, module, self-assignment, recurring, bulk)
- Granular per-question assignments
- Anonymous and authenticated access
Intelligence:
- Visual rule builder with 12 action types
- Conditional logic (show/hide, enable/disable, auto-populate)
- Automated scoring and grading
- Test mode for rule validation
Workflow:
- Multi-state workflow (Open → Submitted → Accepted/Rejected)
- Single reviewer (planned: multiple reviewers)
- Historical snapshots and audit trail
- Email notifications at each stage
Integration:
- Security control mappings for compliance
- Properties storage for reporting
- Report Builder integration
- Import/Export via Excel
- Module-based contextual questionnaires
Enterprise Features:
- Multi-tenancy with tenant isolation
- Comprehensive audit trails
- Soft deletes and data retention
- Recurring automated delivery
- Metadata headers for custom categorization
- Performance optimization with proper indexing
The system is designed to scale from simple surveys to complex compliance assessments with hundreds of questions, thousands of users, and sophisticated conditional logic.
Updated about 12 hours ago
