Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: Geocoder 8.x-4.37 Minor update available for module geocoder (8.x-4.37). Release: Workflow Modeler 1.0.9 Minor update available for module modeler (1.0.9). Release: Vite 1.5.6 Minor update available for module vite (1.5.6). Release: Postmark Webhooks 1.2.0 Minor update available for module postmark_webhooks (1.2.0). Release: FileGate 1.10.0 Minor update available for module file_gate (1.10.0). Release: Menu Autopilot 1.4.0 Minor update available for module menu_autopilot (1.4.0). Release: Field Guard 1.3.0 Minor update available for module field_guard (1.3.0). Release: Audit Chain 1.9.0 Minor update available for module audit_chain (1.9.0). Module Revived: Decorative Images 1.3.6 Module decorative_images updated after 7 months of inactivity (1.3.6). Security Coverage: Pixie Dark Theme pixie_dark now has official Drupal security advisory coverage.

Jotform API

1 sites No security coverage
View on drupal.org

This module renders Jotform forms as native Drupal forms using the Jotform REST API, eliminating the need for iframes. It reads form structure and validation rules directly from Jotform, ensuring that submissions trigger Jotform automations reliably. The module also supports custom field types through a plugin system and provides multiple options for embedding the forms on your Drupal site.

Render Jotform forms as native Drupal forms via the Jotform REST API — no iframes, no embed codes. Form structure, validation rules, and thank-you behaviour are read live from your Jotform account; submissions trigger Jotform automations explicitly so CRM workflows don't drop.

Features

  • API-driven rendering — real Drupal forms, not iframe embeds.
  • 15 built-in field-type renderers; pluggable for custom widgets via a Drupal annotation plugin.
  • Reliable Jotform automation triggering with Sheets / Workflow endpoint fallback.
  • Three placement options: Block, content-entity field, or auto-route at /jotform/{form_id}.
  • Webhook receiver, IP rate limiting, configurable cache with an admin Refresh action.
  • Event-driven extension points so tracking integrations (Meta CAPI, GTM, Rudderstack, etc.) plug in without forking.

Post-Installation

Install via Composer, create a key holding your Jotform API key in the Key module, configure the module at /admin/config/services/jotform-api, then place a form via Block / field / auto-route.

Step-by-step setup, the permissions table, supported field types, validation behaviour, cache management, custom-renderer examples, and the event reference all live in the module README. Refer to it for anything beyond the basics.

Additional Requirements

  • Drupal 10.3 or 11, PHP 8.1+
  • Key module
  • Jotform account with an API key scoped to Full Access (read-only keys can list forms but can't create submissions)

Phone International pairs with the built-in phone renderer to add a country picker. For tracking integrations (Meta CAPI, GTM, Rudderstack, etc.), write a small companion module that subscribes to JotformEvents::POST_SUBMIT — keeps site-specific tracking logic out of this contrib module.

Similar projects

  • Jotform Block Integration embeds Jotform's hosted form HTML as a block (iframe-style); doesn't render via API or trigger automations.
  • Jotform Field Widget provides a form-id field widget and basic API client; doesn't render forms or handle submissions.

This module differs from both: native API-driven rendering, server-side validation, reliable automation triggering, and a plugin system for extending field-type support.

Supporting this Module

Maintained on a best-effort basis. Open issues with a clear reproduction case, your Drupal and Jotform plan, and relevant jotform_api log entries. PRs welcome — especially extra field renderers, conditional-logic support, kernel / functional tests, and translations.

Community Documentation

The README on GitLab covers architecture, supported field types, validation, cache management, permissions, extension hooks, and the event reference. A walkthrough blog post is in preparation.

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
5
Tracked since
May 2026
Latest release
3 months ago
Releases (12 mo)
5 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Core Release date
1.0.0-alpha6 Pre-release 10–11 May 21, 2026
1.0.0-alpha5 Pre-release 10–11 May 19, 2026
1.0.0-alpha4 Pre-release 10–11 May 13, 2026
1.0.0-alpha2 Pre-release 10–11 May 7, 2026
1.0.0-alpha1 Pre-release 10–11 May 7, 2026