github verbb/formie 4.0.0-beta.6

pre-release6 hours ago

Added

  • Add top-level Integrations control panel navigation for managing CRM, email marketing, element, and other payload integrations outside Settings.
  • Add site-scoped integrations that can be created and edited on production environments (allowAdminChanges = false). Existing integrations remain project-scoped and deploy via project config.
  • Add Display Type settings to File Upload fields: File Input (Simple) keeps the native browser input and uploads files on form submit; Upload Manager (Advanced) adds a drag-and-drop zone with async staged uploads, progress, remove, and reorder controls via Formie’s upload endpoints. Existing forms default to File Input (Simple). (#133, #2385, Discussion #1692)
  • Expose displayType on File Upload GraphQL field settings.
  • Add per-field Asset Data Retention settings to File Upload fields, allowing uploaded assets to be deleted after a configured duration while the submission record is kept. (#1715)
  • Add File Upload asset retention and stale pending upload cleanup through Craft garbage collection and dedicated console commands.
  • Add When integrations re-run settings (Integrations → Settings) with per-integration policies: once on submit (default), also when submission is edited, or custom trigger events. Integration conditions still apply. (#1429, #1724, #2591, #1970)
  • Dispatch integrations on control panel submission saves when the re-run policy includes Control panel save, including bulk status changes and other direct element saves. CP submission edit saves continue to use the submission workflow without double-triggering. (Discussion #2253)
  • Add IntegrationTriggers service as the single coordinator for workflow, control panel element saves, spam unmark actions, and manual integration runs.
  • Add IntegrationExecutor service to unify legacy and orchestrated integration step execution, including batched queue jobs.
  • Add NotificationTriggers service to coordinate status-change email notifications when submission statuses are updated.
  • Add Use Submission User as Author to Entry element integrations, assigning the collected submission user as the entry author when Collect User is enabled on the form. (#1363)
  • HubSpot Map to Form integrations now resolve custom object objectTypeId values when submitting to HubSpot forms, including portal-specific custom objects (Enterprise). Refresh HubSpot forms after creating custom objects. (#2649)
  • Add Enable Conditions to form integration settings, allowing integrations to be triggered only when submission field and status rules match. (#447)
  • Add Integration Dispatch form settings (Integrations → Settings) to run payload integrations sequentially, choose immediate vs queued execution per integration, control notification timing relative to integrations, and expose dispatch results via {dispatch:handle:property} variables (for example {dispatch:user:url}). Dispatch variables appear in variable pickers when integration dispatch is enabled. (#2635, #1152, #2810)
  • Add per-notification Dispatch Timing (Advanced) to override the form’s integration dispatch notification timing.
  • Add configurable Integration API Error Handling for Mailchimp and Campaign Monitor, classifying rate-limited and rejected payloads separately from operational failures. (#2172, #1990)
  • Add Integrations::EVENT_AFTER_TRIGGER_INTEGRATION_FAILED for handling integration failures outside the queue, and Send Email Alert for Failed Integration settings mirroring failed notification alerts. (Discussion #2579)

Changed

  • Apply control panel submission sidebar fields (title, status, spam, mark as complete) during managed CP submission saves.
  • Route all integration trigger entry points through IntegrationTriggers instead of Submission::afterSave hooks.
  • Consolidate legacy and orchestrated integration dispatch behind IntegrationExecutor, using batched TriggerIntegration queue jobs for queued steps.
  • Route status-change email notifications through NotificationTriggers instead of inline logic in Submission::afterSave.
  • Deprecate Formie 3 Submissions integration and notification dispatch helpers when compatibility mode is enabled. Use Notifications, Integrations, and IntegrationTriggers instead.
  • Remove unused Integration::shouldTriggerOnSubmissionEdit() API (superseded by re-run policies).
  • Update phone number values sent to integrations to use E164 format instead of international formatting. (Discussion #2731)
  • Improve integration queue job descriptions and debug output with form context (formId, formHandle, formTitle). (#2172)
  • Reorganise plugin settings: move integration behaviour settings to Settings → Behavior → Integrations, and move Use Queue for Notifications to Email Notifications.
  • OAuth integration redirect URIs now default to a Craft action URL instead of a site URL. Add an optional OAuth Redirect URI Override plugin setting. (#1333)

Fixed

  • Fix Opayo, Stripe, Paddle, and GoCardless payment integrations not resolving Billing Details field mappings from the form builder static table, so Name and Address fields are included in payment payloads again. (#2617)
  • Fix Salesforce integrations failing after Craft 5 / Formie 3 upgrades when OAuth tokens were migrated without instance_url, by falling back to stored integration settings and backfilling token values. (#2492)
  • Fix Salesforce integration refresh failing when an enabled object such as Opportunity or Case is unavailable in the connected org. (#1551)
  • Fix Marketo OAuth connect failing when an empty scope parameter is sent with the client-credentials grant, and normalize API domains that include a trailing /rest segment. (#2718)
  • Fix Mailchimp integrations not exposing or formatting Address merge fields, which prevented mapping Formie Address fields to Mailchimp audiences that require ADDRESS data. (#2387)
  • Improve Pardot integration errors when an account does not support API v4 (legacy Pardot Classic). (#2642)
  • Fix file upload assets being deleted when trashing a submission with File Uploads → Delete files enabled, so restored submissions keep their uploaded files. (#1258)
  • Fix new File Upload fields defaulting to an empty Email Field Summary Value setting.
  • Fix Signature fields intermittently showing a misleading “browser does not support” message on multi-page forms, conditional fields, and late layout by retrying canvas sizing, watching visibility changes, and showing accurate status copy when initialization fails. (#2708)

Don't miss a new formie release

NewReleases is sending notifications on new releases.