v1.0

Frequently Asked Questions

Find answers to common questions about QuikForms installation, configuration, and troubleshooting. If you can't find what you're looking for, consult the detailed documentation sections or contact your Salesforce administrator.

Frequently Asked Questions

Find answers to common questions about QuikForms installation, configuration, and troubleshooting. If you can't find what you're looking for, consult the detailed documentation sections or contact your Salesforce administrator.

General Questions

QuikForms is a comprehensive form management solution for Salesforce that provides a drag-and-drop form builder, reusable field library, multi-language support, advanced styling, and seamless integration with Salesforce objects. It enables you to create professional forms for customer contact, support requests, surveys, and more without coding.

Key capabilities include:

  • Visual form builder with drag-and-drop field arrangement
  • Reusable field library for consistency across forms
  • Multi-language support with JSON-based localization
  • Custom styling with themes and gradients
  • Cloudflare Turnstile and honeypot protection for spam prevention
  • Built-in analytics with views, submissions, conversion rates, and device tracking
  • File attachment support up to 9MB

For more details, see the Overview section.

QuikForms requires Salesforce Developer Edition or higher (Professional, Enterprise, Unlimited). It uses Lightning Web Components, Visualforce pages, and Apex REST APIs that are available in these editions.

Important: For public-facing forms, you'll need a Salesforce Site or Experience Cloud site with guest user access configured.

No coding required for basic form creation and management. The visual interface allows you to:

  • Create forms using drag-and-drop
  • Configure fields with point-and-click
  • Apply themes and customize colors
  • Set up validation rules using templates

Optional coding may be useful for:

  • Custom HTML injection in forms
  • Advanced regex validation patterns
  • Custom post-submission workflows
  • Integration with external systems

QuikForms supports three form types:

Form Type Purpose Creates
Email Contact forms, support requests, inquiries Case record
Survey Feedback forms, customer satisfaction surveys Survey__c record
Chat Live chat integration forms Integrates with Salesforce Chat

Learn more about form types in the Form Configuration section.

Yes! QuikForms is designed to work with Salesforce Sites and Experience Cloud. The Visualforce page (qf.page) can be embedded in Experience Cloud sites or accessed directly through your site domain.

To use QuikForms on Experience Cloud:

  1. Configure guest user permissions (see Security section)
  2. Enable Visualforce page access for your site
  3. Access forms at: https://yoursite.force.com/apex/qf?fc=[form-id]
  4. Optionally embed forms in iframes on Experience Cloud pages

Installation & Setup

Installation typically takes 30-45 minutes and includes:

  • Metadata deployment: 5-10 minutes
  • Cloudflare Turnstile configuration: 10-15 minutes
  • Named Credential setup: 5 minutes
  • Lightning App pages creation: 10 minutes
  • Permission configuration: 5-10 minutes

Follow the step-by-step guide in the Installation section for a smooth setup.

QuikForms uses a dual-layer bot protection approach:

1. Cloudflare Turnstile (CAPTCHA)

Turnstile provides a privacy-friendly, non-intrusive CAPTCHA challenge that replaces the traditional "I'm not a robot" checkbox. It runs silently in most cases and only presents a challenge when suspicious activity is detected.

2. Honeypot Protection

A hidden field technique that catches automated bots. Honeypot protection remains active even when CAPTCHA is disabled, providing a baseline layer of protection.

Turnstile Setup Steps:

  1. Go to the Cloudflare Turnstile Dashboard
  2. Create a new Turnstile widget for your Salesforce domain
  3. Copy the Site Key to Custom Metadata: QuikForms_Setting.Turnstile_Site_Key__c
  4. Create Named Credential "Turnstile" with the External Credential for server-side verification
  5. Use the Setup Assistant in QuikForms Admin to validate the configuration
Setup Assistant: QuikForms includes a Setup Assistant that guides you through Turnstile configuration and validates your setup automatically.
Security Note: Never disable CAPTCHA on public-facing forms in production. Honeypot alone may not stop all sophisticated bots.

For public forms to function, the guest user requires specific permissions:

Read Access:

  • qf Visualforce page
  • QuikFormsService Apex class (REST API)
  • FormConfig__c object and all fields
  • FormField__c object and all fields

Create Access:

  • Case object (for Email forms)
  • Survey__c object (for Survey forms)
  • ContentVersion (for file attachments)

Field-Level Security:

  • Enable read/edit on all Case fields used in forms
  • Enable read/edit on custom fields like QF_Form_Config__c
Best Practice: Configure permissions in a dedicated Permission Set for easier management. See the Guest User Permissions section for complete details.

You need to create two Lightning App pages for the admin interface:

Page 1: QuikForms Admin (Form Management)

  1. Go to SetupLightning App Builder
  2. Click NewApp Page
  3. Label: "QuikForms Admin", Template: One Region
  4. Drag quikFormsManager component to the page
  5. Save and activate for Lightning Experience

Page 2: QuikForms Fields (Field Library)

  1. Create another App Page
  2. Label: "QuikForms Fields", Template: One Region
  3. Drag quikFieldsLibrary component to the page
  4. Save and activate for Lightning Experience

Add both pages to your app navigation menu for easy access. See the Installation section for detailed instructions with screenshots.

Form Management

Follow this quick workflow to create a basic contact form:

Step 1: Create Fields

  1. Navigate to QuikForms Fields page
  2. Click New Field
  3. Use templates: Email Field, Name Field, Subject Field, Message Field
  4. Click Save Field for each

Step 2: Create Form

  1. Navigate to QuikForms Admin page
  2. Click New Form
  3. Enter Form Name: "Contact Us Form"
  4. Select Form Type: Email
  5. Click Save Settings

Step 3: Add Fields to Form

  1. Switch to Fields tab
  2. Drag fields from Available Fields to Form Fields
  3. Reorder as needed
  4. Fields auto-save on change

Step 4: Style and Activate

  1. Switch to Styling tab
  2. Apply a quick theme (e.g., "Classic Blue")
  3. Switch to Settings tab
  4. Check Activated
  5. Click Save Settings

Step 5: Test

  1. Switch to Preview tab
  2. Test submission
  3. Or access at: https://[your-domain]/apex/qf?fc=contact-us-form

See the Quick Start section for detailed guidance.

Yes! This is one of QuikForms' key features. Fields created in the QuikField Library are reusable across all forms.

Benefits:

  • Consistency: Same field configuration across forms
  • Efficiency: Create once, use many times
  • Maintainability: Update a field, affects all forms using it
  • Standards: Enforce organizational field standards

Example: Create an "Email Address" field once with validation regex, then use it in contact forms, feedback forms, registration forms, etc.

Usage Tracking: The QuikField Library shows how many forms use each field, helping you understand field dependencies before making changes.

Cloning creates a duplicate of an existing form with all settings:

  1. Navigate to QuikForms Admin
  2. Find the form you want to clone
  3. Click the Clone action button (copy icon)
  4. A new form is created with name: "[Original Name] - Copy"
  5. The cloned form includes:
    • All form settings and configuration
    • All field assignments (DisplayFields)
    • All styling and theme settings
    • Custom HTML and advanced settings
  6. Edit the cloned form to customize as needed

Use Cases:

  • Create variations of a form for different departments
  • Create multi-language versions of the same form
  • Test changes without affecting the original form
  • Use a template form as starting point for new forms
Note: The cloned form will have a new Form ID. Update any links or references to use the new ID.

Yes, you can delete forms. To delete a form:

  1. Navigate to QuikForms Admin
  2. Find the form to delete
  3. Click the Delete action button (trash icon)
  4. Confirm deletion in the dialog

What Gets Deleted:

  • The FormConfig__c record
  • Form configuration and settings

What Is Preserved:

  • FormField__c records: Fields remain in the library for reuse
  • Case records: All submitted Cases remain intact
  • Survey__c records: All Survey responses remain intact
  • File attachments: All uploaded files remain in Salesforce
Cannot Undo: Form deletion is permanent. Consider deactivating the form instead if you might need it later.

Use the Activated toggle to disable forms temporarily:

  1. Navigate to QuikForms Admin
  2. Click Edit on the form
  3. Go to Settings tab
  4. Uncheck Activated
  5. Click Save Settings

Result: Users accessing the form will see an error message instead of the form. The form configuration is preserved and can be reactivated at any time.

Use Cases:

  • Temporarily close form during maintenance
  • Disable form during holiday periods
  • Test changes before making form live again
  • Retire old forms without losing configuration
Testing Inactive Forms: Add &dev=true to the URL to view inactive forms during testing: ?fc=contact-us&dev=true

Field Configuration

QuikForms provides five core field types:

Field Type Use For Examples
inputText Single-line text entry Name, Email, Phone, Subject
inputTextarea Multi-line text entry Message, Description, Comments
selectList Dropdown selections Priority, Category, Country
checkBox Boolean true/false Newsletter opt-in, Terms acceptance
customHTML Rich HTML content Instructions, Disclaimers, Formatting

selectList supports three display structures:

  • selectList: Dropdown menu (best for 6+ options)
  • selectRadio: Radio buttons (best for 2-5 options)
  • selectCheckboxes: Checkboxes for multiple selection

Learn more in the Field Types section.

Dropdowns and radio buttons use the selectList field type with custom structure configuration:

Quick Method (Visual Editor):

  1. In QuikField Editor, select Basic tab
  2. Set Field Type to selectList
  3. Go to Options & Structure tab
  4. Set Custom Structure Type:
    • selectList for dropdown
    • selectRadio for radio buttons
  5. Click Edit Options Visually
  6. In the editor:
    • Click Add Option for each choice
    • Enter option text
    • Use ↑↓ buttons to reorder
    • Click Save Options
  7. Click Save Field

Manual Method (JSON):

  1. In Options & Structure tab
  2. Enter JSON array in Custom Structure field:
["Option 1", "Option 2", "Option 3"]

Example - Priority Dropdown:

Field Type: selectList
Custom Structure Type: selectList
Custom Structure: ["High", "Medium", "Low"]

Example - Satisfaction Radio Buttons:

Field Type: selectList
Custom Structure Type: selectRadio
Custom Structure: ["Very Satisfied", "Satisfied", "Neutral", "Dissatisfied"]

See the QuikField Builder Workflow for detailed steps.

QuikForms supports dynamic field visibility through the Dynamic Fields configuration:

  1. Open your form in the QuikForms Builder
  2. Click the Dynamic Fields tab (hierarchy icon)
  3. Click Add Parent Field and select a field (must be a select list, checkbox, or field with custom structure)
  4. For each parent field, click Add Child Rule:
    • Select the child field to show/hide
    • Choose the parent values that trigger visibility
    • Add multiple rules as needed
  5. Click Save Form to save your configuration

Example Use Case:

Show "Reason for Dissatisfaction" text field only when user selects "Dissatisfied" in satisfaction rating:

  • Parent Field: Satisfaction Rating (select list)
  • Child Field: Reason for Dissatisfaction (text area)
  • Trigger Values: "Dissatisfied"
  • Behavior: Field appears when "Dissatisfied" is selected
Configuration: Dynamic fields are configured at the form level in the Dynamic Fields tab. All parent-child relationships are managed in one centralized location for easy maintenance.

QuikForms supports multi-language labels and options through JSON format:

Method 1: Using Localization Editor (Recommended)

  1. Open field in QuikField Editor
  2. Go to Basic tab
  3. Click Edit Localization button next to Label field
  4. In the editor:
    • Click Add Language
    • Select language (e.g., de_DE, es_ES)
    • Enter translated label
    • Repeat for each language
    • Click Save

Method 2: Manual JSON Entry

Enter JSON directly in the Label field:

{
  "en_US": "Email Address",
  "de_DE": "E-Mail-Adresse",
  "es_ES": "Dirección de correo electrónico",
  "fr_FR": "Adresse e-mail"
}

Multi-Language Dropdown Options:

For selectList fields, translate options in Custom Structure:

{
  "en_US": ["High", "Medium", "Low"],
  "de_DE": ["Hoch", "Mittel", "Niedrig"],
  "es_ES": ["Alto", "Medio", "Bajo"]
}

Form Configuration:

In the form's Settings tab, configure supported languages:

Supported Languages:
{
  "en_US": "English",
  "de_DE": "Deutsch",
  "es_ES": "Español"
}

Check Show Language Picker to display language selector to users.

See the Multi-Language Support section for comprehensive guidance.

These are special Object Field values that enable file upload functionality:

$ATTACHMENT (Single File Upload)

  • Purpose: Enables single file upload
  • Creates: ContentVersion and ContentDocumentLink records
  • Accepted Types: Images (jpg, png, gif), PDF, Word documents (doc, docx), plain text (txt)
  • Behavior:
    • User can select one file at a time
    • Shows selected filename
    • File is uploaded on form submission
    • Linked to submitted record (Case, Lead, etc.)
  • Max Size: 9MB per file
  • Usage: Set Object Field = $ATTACHMENT on your file input field

$CONTENTDOCUMENT (Multiple File Upload)

  • Purpose: Enables multiple file upload with file list management
  • Creates: ContentVersion and ContentDocumentLink records for each file
  • Accepted Types: Images, PDF, Word (doc/docx), Excel (xls/xlsx), PowerPoint (ppt/pptx), plain text, CSV, ZIP, RAR
  • Behavior:
    • User can select multiple files at once
    • Shows list of selected files with remove buttons
    • All files uploaded on form submission with progress indicator
    • Each file linked to submitted record
  • Max Size: 9MB per file
  • Usage: Set Object Field = $CONTENTDOCUMENT on your file input field

Example Single File Upload ($ATTACHMENT):

Field Name: Resume Upload
Field ID: resume_file
Type: inputText
Label: Attach Resume
Object Field: $ATTACHMENT
Description: Upload PDF or Word document (max 9MB)
Required: Yes

Example Multiple File Upload ($CONTENTDOCUMENT):

Field Name: Supporting Documents
Field ID: support_docs
Type: inputText
Label: Upload Documents
Object Field: $CONTENTDOCUMENT
Description: Upload multiple files (images, PDFs, Office docs, max 9MB each)
Required: No
Note: You can use both $ATTACHMENT and $CONTENTDOCUMENT fields in the same form, but it's recommended to use $CONTENTDOCUMENT for most cases since it provides more flexibility.

Analytics

QuikForms includes built-in analytics that track the following metrics for each form:

Metric Description
Total Views Number of times the form has been loaded
Unique Visitors Distinct visitors with return visitor rate
Submissions Number of successful form submissions
Conversion Rate Percentage of views that result in a submission
Avg. Time to Complete Average duration from form load to submission
Device Breakdown Desktop, mobile, and tablet view counts
Browser Breakdown Submissions by browser (Chrome, Safari, Firefox, Edge, Other)
Top Referrers Domains driving traffic to your forms
Daily Trends Day-by-day view, unique visitor, and submission charts
Trend Indicators Percentage change compared to previous period

All analytics data is stored natively in Salesforce — no third-party analytics services or external scripts are required.

There are two ways to access analytics:

1. Analytics Manager (All Forms)

  • Navigate to the Analytics Manager admin page
  • View aggregate metrics across all forms
  • Use the per-form breakdown table to compare form performance
  • Click any form name to see its detailed analytics

2. Per-Form Analytics (Individual Form)

  • Open any form in the Form Builder
  • Click the Analytics tab
  • View detailed metrics, daily trends chart, device/browser breakdown, and top referrers

Both views support date range filtering (Last 7 days, 30 days, 90 days, or All time).

Yes. Analytics tracking can be toggled per form:

  1. Open the form in the Form Builder
  2. Navigate to the Analytics tab
  3. Use the Analytics Enabled/Disabled toggle at the top
  4. Save the form

When disabled, no analytics data will be collected for that form. Existing analytics data is preserved and can still be viewed.

Note: Disabling analytics for a form only stops future data collection. Historical data remains accessible.

No. QuikForms includes fully native analytics built into the platform. There is no need for Google Analytics, Adobe Analytics, or any other third-party analytics service.

Benefits of native analytics:

  • Privacy: All data stays within your Salesforce org — nothing is sent to external servers
  • No additional cost: No third-party subscriptions required
  • No setup: Analytics work out of the box with no external configuration
  • Compliance: Easier to comply with GDPR, CCPA, and other privacy regulations
  • No cookie banners: No third-party tracking cookies means no additional consent requirements

Security

Yes, when properly configured. QuikForms implements multiple security layers:

Security Feature Protection Against
Cloudflare Turnstile Bot submissions, spam, automated abuse
Honeypot Protection Automated bot submissions (always active)
Guest User Permissions Unauthorized data access, privilege escalation
Input Validation Injection attacks, malformed data
Regex Validation Invalid data formats, XSS attempts
HTTPS Enforcement Man-in-the-middle attacks, data interception
Output Escaping Cross-site scripting (XSS)
Rate Limiting DoS attacks, submission flooding
Security Checklist:
  • Keep Cloudflare Turnstile enabled for public forms
  • Configure guest user with minimum required permissions
  • Use HTTPS for all production forms
  • Enable email confirmation to reduce typos/abuse
  • Review and test guest user access regularly
  • Monitor form submissions for suspicious patterns
  • Use built-in Analytics to monitor form activity and detect anomalies

See the Security section for detailed configuration guidance.

Guest users (unauthenticated public users) can only access what you explicitly grant:

What Guest Users CAN Access (when granted):

  • Read: qf Visualforce page (to view forms)
  • Read: QuikFormsService Apex class (REST API for form data)
  • Read: FormConfig__c records (form configuration)
  • Read: FormField__c records (field definitions)
  • Create: Case records (for Email form submissions)
  • Create: Survey__c records (for Survey submissions)
  • Create: ContentVersion records (for file uploads)

What Guest Users CANNOT Access (by default):

  • Admin UI components (quikFormsManager, quikFieldsLibrary)
  • QuikFormsAdminController Apex class
  • Edit or delete operations on FormConfig or FormField
  • Existing Case or Survey records (read/edit/delete)
  • Other users' submissions
  • Salesforce Setup or configuration

Object-Level Security:

  • Guest users see ONLY the FormConfig records marked as Activated
  • Guest users see ONLY the fields exposed in DisplayFields configuration
  • Deactivated forms return error messages to guest users
Best Practice: Use a Permission Set named "QuikForms Guest User Access" to manage these permissions centrally. Document which permissions are granted and why.

Yes, QuikForms includes multiple spam prevention measures:

1. Cloudflare Turnstile Protection

  • Privacy-friendly CAPTCHA that validates human users non-intrusively
  • Blocks bot submissions automatically
  • Server-side verification prevents bypass attempts
  • Can be disabled per-form (not recommended for public forms)

2. Honeypot Protection

  • Hidden field technique that catches automated bots
  • Always active, even when CAPTCHA is disabled
  • Zero impact on user experience

3. Email Confirmation

  • Requires users to enter email twice
  • Reduces typos and throwaway email abuse
  • Can be disabled per-form if needed

4. Platform-Level Protections

  • Salesforce Governor Limits: Automatic API call limits
  • Guest User Limits: Salesforce enforces request limits for guest users
  • IP Blocking: Configure at Site or Experience Cloud level

5. Field Validation

  • Required field enforcement
  • Regex pattern validation
  • File size and type restrictions
  • Prevents malformed submissions

Additional Measures You Can Implement:

  • IP Monitoring: Log and analyze submission IPs
  • Analytics Monitoring: Use built-in analytics to detect unusual spikes in form activity
  • Process Builder/Flow: Create workflows to flag suspicious submissions
Monitoring Tip: Enable "Log User Browser Info" in form settings to capture IP addresses and user agents for abuse tracking.

Implement these best practices to minimize spam:

Essential Protections:

  1. Keep Turnstile CAPTCHA Enabled: Most effective spam prevention
    • In form Settings, ensure Disable CAPTCHA is UNCHECKED
    • Verify Turnstile is properly configured via the Setup Assistant
    • Honeypot protection remains active even if CAPTCHA is disabled
  2. Enable Email Confirmation: Deters throwaway emails
    • In form Settings, ensure Disable Email Confirmation is UNCHECKED
  3. Use Required Fields: More fields = more effort for spammers
    • Mark key fields as Required in field configuration
    • Balance between user experience and spam prevention

Advanced Protections:

  1. Log Browser Info: Track submission sources
    • Check Log User Browser Info in form Settings
    • Review IP addresses in Case records
    • Block repeat offender IPs at Site level
  2. Validation Rules: Add Salesforce validation rules
    • Detect spam keywords in Case fields
    • Flag suspicious patterns (all caps, excessive URLs)
  3. Process Builder/Flow: Automate spam detection
    • Auto-close Cases with spam characteristics
    • Send alerts for suspicious patterns
    • Quarantine submissions for review

Monitoring and Response:

  • Regularly review submitted Cases for spam
  • Create Reports for spam pattern detection
  • Update validation rules based on new spam tactics
  • Consider temporary form deactivation if under heavy attack
Never Disable CAPTCHA: on production public forms. Cloudflare Turnstile combined with honeypot protection is your primary defense against automated spam.

Yes, QuikForms leverages Salesforce's enterprise-grade security:

Encryption in Transit (HTTPS/TLS):

  • All Salesforce communications use HTTPS with TLS 1.2 or higher
  • Form submissions encrypted during transmission
  • Turnstile CAPTCHA API calls encrypted
  • File uploads encrypted during transfer

Encryption at Rest:

  • Salesforce Shield Platform Encryption: Available for encryption at rest
    • Encrypts Case data including form submissions
    • Encrypts Custom Objects (Survey__c)
    • Encrypts file attachments (ContentVersion)
    • Requires Shield Platform Encryption license
  • Standard Salesforce Security: Without Shield
    • Data stored in secure Salesforce infrastructure
    • Physical security and access controls
    • Regular security audits and certifications

Additional Security Measures:

  • Field-Level Security: Control who can see sensitive data
  • Object Permissions: Restrict access to Case and Survey records
  • Audit Trail: Field History Tracking available for compliance
  • Backup and Recovery: Salesforce provides data backup and disaster recovery
Compliance: Salesforce maintains compliance with industry standards including SOC 2, ISO 27001, GDPR, HIPAA (with BAA), PCI DSS, and more. QuikForms inherits these certifications.

Recommendations for Sensitive Data:

  • Consider Salesforce Shield for regulated industries
  • Enable Field History Tracking for audit requirements
  • Implement data retention policies
  • Review and minimize data collection to what's necessary
  • Train staff on data handling procedures

Troubleshooting

This error occurs when QuikForms cannot locate the specified form. Here's how to diagnose and fix:

Common Causes and Solutions:

1. Form Not Activated

  • Symptom: Form exists but shows error to users
  • Solution:
    1. Open form in QuikForms Admin
    2. Go to Settings tab
    3. Check Activated checkbox
    4. Click Save Settings
  • Testing: Add &dev=true to URL to bypass activation check

2. Incorrect Form ID in URL

  • Symptom: Typo or wrong form ID parameter
  • Solution:
    1. Check URL parameter: ?fc=your-form-id
    2. Verify form ID in QuikForms Admin (ID__c field)
    3. Form IDs are case-sensitive and use hyphens (no spaces)

3. Form Deleted

  • Symptom: Form previously worked but now shows error
  • Solution:
    1. Check QuikForms Admin to confirm form exists
    2. Restore from backup if recently deleted
    3. Clone a similar form if no backup available

4. Guest User Lacks Access

  • Symptom: Form works for admins but not public users
  • Solution:
    1. Verify guest user has read access to:
      • qf Visualforce page
      • QuikFormsService Apex class
      • FormConfig__c object
      • FormField__c object
    2. Test in private/incognito browser window
Debug Tip: Check browser console (F12) for JavaScript errors that might provide additional clues about the issue.

Missing fields can be caused by several configuration issues:

1. Fields Not Added to DisplayFields

  • Most Common Cause
  • Solution:
    1. Open form in QuikForms Admin
    2. Go to Fields tab
    3. Drag missing fields from Available Fields to Form Fields
    4. Fields auto-save when added

2. Field Marked as Private

  • Symptom: Field doesn't appear in Available Fields list
  • Solution:
    1. Open QuikForms Fields
    2. Find and edit the field
    3. Go to Validation & Behavior tab
    4. Uncheck Private Field
    5. Click Save Field

3. Field Deleted

  • Symptom: Field ID in DisplayFields but doesn't render
  • Solution:
    1. Check if field exists in QuikForms Fields
    2. Recreate field if deleted
    3. Re-add field to form in Fields tab

4. Conditional Field Hidden

  • Symptom: Field appears sometimes but not always
  • Cause: Field has dynamic visibility condition that's not met
  • Solution:
    1. Open form in QuikForms Builder
    2. Navigate to Dynamic Fields tab
    3. Verify the child field rules and trigger values are correct
    4. Test by selecting trigger value in form preview

5. Guest User Lacks Field Access

  • Symptom: Form works for admins but fields missing for public
  • Solution:
    1. Check guest user Field-Level Security for:
      • FormField__c object fields
      • Related object fields (Case, Survey__c)
    2. Grant read access to required fields
Quick Test: View form Preview tab in QuikForms Admin. If fields appear there but not in public URL, it's likely a permissions issue.

Form submission failures can have multiple causes. Here's how to diagnose:

1. Check Browser Console for Errors

  • Press F12 to open browser developer tools
  • Go to Console tab
  • Look for red error messages
  • Common errors:
    • "CAPTCHA validation failed" - Turnstile challenge not completed
    • "Required field missing" - Fill all required fields
    • "Validation failed" - Check regex pattern errors

2. Validation Errors

  • Required Fields: Ensure all required fields are filled
  • Email Format: Check email matches regex pattern
  • Email Confirmation: Both email fields must match exactly
  • File Size: Attachments must be under 9MB
  • File Type: Only jpg, png, gif, pdf, doc, txt allowed

3. CAPTCHA Verification Failed

  • Symptom: Submit button disabled or shows error
  • Solution:
    • Wait for the Turnstile challenge to complete (usually automatic)
    • Refresh the page if the Turnstile widget doesn't load
    • Check that your Salesforce domain is added to the Turnstile site configuration
    • Verify Named Credential and External Credential are properly configured

4. Guest User Permissions

  • Symptom: "Insufficient privileges" error
  • Solution: Grant guest user create access to:
    • Case object (for Email forms)
    • Survey__c object (for Survey forms)
    • ContentVersion (for file attachments)
    • Required fields on these objects

5. Field Mapping Errors

  • Symptom: Form submits but data missing or error
  • Solution:
    • Verify Object Field mappings in field configuration
    • Ensure mapped fields exist on target object
    • Check field types are compatible
    • Review unmapped fields - they go to Quik_Extra_Fields__c

6. Salesforce Validation Rules

  • Symptom: Form submits but Case/Survey not created
  • Solution:
    • Check Salesforce validation rules on Case/Survey__c
    • Ensure form provides required fields
    • Add hidden fields for required values
    • Review debug logs for validation errors
Debug Logs: Enable debug logs for the QForm class to see detailed error messages during submission processing.

Styling issues are usually caused by caching or configuration problems:

1. Styling Not Saved

  • Symptom: Changes don't appear in preview or live form
  • Solution:
    1. Make styling changes in Styling tab
    2. Click Save Styling button
    3. Wait for success message
    4. Refresh preview

2. Browser Cache

  • Most Common Issue
  • Solution:
    • Hard refresh: Ctrl+Shift+R (Windows) or Cmd+Shift+R (Mac)
    • Clear browser cache and cookies
    • Test in private/incognito window
    • Try different browser

3. Custom HTML Overriding Styles

  • Symptom: Some styling works but specific elements don't change
  • Solution:
    1. Check form Settings tab for Custom HTML Head
    2. Review Custom Header/Footer HTML
    3. Look for inline styles or <style> tags
    4. Remove or adjust conflicting CSS

4. Invalid Color Values

  • Symptom: Some colors don't apply
  • Solution:
    • Ensure hex colors start with # (e.g., #0070D2)
    • Use 6-character hex codes (not 3-character)
    • Avoid color names (use hex instead)
    • Re-apply quick theme to reset

5. Container Width Issues

  • Symptom: Form too wide or too narrow
  • Solution:
    1. Check Content Container Width in Styling tab
    2. Recommended: 575px for standard forms
    3. Use valid CSS units: px, %, rem, vw
    4. Test different viewport sizes

6. Preview Not Refreshing

  • Symptom: Preview tab shows old version
  • Solution:
    • Click Refresh Preview button
    • Switch to different tab and back
    • Use Open in New Tab for testing
    • Test live form URL directly
Quick Fix: Apply a quick theme (Classic Blue, Professional Dark, etc.) to reset all colors to known good values, then customize from there.

Multi-language issues usually stem from JSON formatting or configuration:

1. Invalid JSON Format

  • Most Common Issue
  • Symptom: Labels show as blank or raw JSON
  • Solution:
    • Validate JSON syntax using online JSON validator
    • Check for:
      • Missing quotes around keys and values
      • Missing commas between entries
      • Trailing commas (not allowed in JSON)
      • Unescaped special characters
    • Use quikLocalizationEditor instead of manual JSON entry

Correct JSON Format:

{
  "en_US": "Email Address",
  "de_DE": "E-Mail-Adresse",
  "es_ES": "Dirección de correo"
}

2. Missing Locale in URL

  • Symptom: Always shows English regardless of translation
  • Solution:
    • Add locale parameter to URL: ?fc=contact-us&locale=de_DE
    • Default locale is en_US if not specified
    • Enable language picker for user selection

3. Language Not Configured in Form

  • Symptom: Language picker doesn't show language
  • Solution:
    1. Open form Settings tab
    2. Ensure Show Language Picker is checked
    3. Add language to Supported Languages JSON:
{
  "en_US": "English",
  "de_DE": "Deutsch",
  "es_ES": "Español"
}

4. Missing Translation for Locale

  • Symptom: Some fields show translation, others don't
  • Behavior: Falls back to en_US if translation missing
  • Solution:
    • Review each field's Label and CustomStructure
    • Ensure all languages are included in JSON
    • Always include en_US as fallback

5. Mixed Format (Some Plain Text, Some JSON)

  • Symptom: Inconsistent translation behavior
  • Solution:
    • Convert all labels to JSON format (even if single language)
    • Or use plain text for all (no translations)
    • Don't mix formats across fields in same form

6. Custom Structure Options Not Translated

  • Symptom: Field labels translate but dropdown options don't
  • Solution:
    1. Open field in QuikField Editor
    2. Go to Options & Structure tab
    3. Click Edit Options Visually
    4. Enable Multi-Language Support
    5. Add translations for each language
    6. Save options
Best Practice: Always use the visual editors (quikLocalizationEditor, quikCustomStructureEditor) instead of manual JSON entry to avoid syntax errors.

Salesforce debug logs provide detailed error information for form submission issues:

Enable Debug Logs:

  1. Go to SetupDebug Logs
  2. Click New
  3. Traced Entity Type: Select User
  4. Traced Entity Name: Select guest user (e.g., "Site Guest User")
  5. Set Debug Level:
    • Create new debug level if needed
    • Set Apex Code to FINEST
    • Set Database to INFO
    • Set Validation to INFO
  6. Set Expiration (logs expire after this time)
  7. Click Save

Generate and View Logs:

  1. Submit test form to generate log
  2. Return to SetupDebug Logs
  3. Find recent log (sorted by timestamp)
  4. Click View to open log
  5. Look for:
    • Exceptions: Search for "EXCEPTION"
    • Validation Errors: Search for "VALIDATION"
    • DML Errors: Search for "DML"
    • QForm methods: Search for "QForm"

Common Error Patterns in Logs:

Permission Errors:

EXCEPTION: System.DmlException: Insert failed. First exception on row 0;
first error: INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY
  • Solution: Grant guest user create access to object

Field Security Errors:

EXCEPTION: System.DmlException: Insert failed. First exception on row 0;
first error: INSUFFICIENT_ACCESS_OR_READONLY, insufficient access rights on object
  • Solution: Grant field-level security to guest user

Validation Rule Errors:

EXCEPTION: FIELD_CUSTOM_VALIDATION_EXCEPTION, [Validation Rule Name]:
[Error Message]
  • Solution: Adjust form to satisfy validation rule or modify rule

Required Field Errors:

EXCEPTION: REQUIRED_FIELD_MISSING, Required fields are missing: [Field_Name]
  • Solution: Add field to form or provide default value via hidden field
Log Limits: Debug logs expire after the time you set and count against storage limits. Remove trace flags when not actively debugging.
Still Need Help?

If you couldn't find the answer to your question in this FAQ: