Drupal is a registered trademark of Dries Buytaert
Release: Paragraphs 8.x-1.23 Minor update available for module paragraphs (8.x-1.23). Release: Chosen 5.0.7 Minor update available for module chosen (5.0.7). Release: Dynamic Entity Reference 3.2.3 Minor update available for module dynamic_entity_reference (3.2.3). Release: Charts 5.2.3 Minor update available for module charts (5.2.3). Release: amazee.ai Private AI Provider 1.3.5 Minor update available for module ai_provider_amazeeio (1.3.5). Release: Database Info Schema 1.3.1 Minor update available for module database_info_schema (1.3.1). Release: Localgov Microsites Project 4.1.2 Minor update available for module localgov_microsites_project (4.1.2). Release: Extra Content Canvas Basecore 1.0.1 Minor update available for module extra_content_canvas_basecore (1.0.1). Usage Milestone: Media entity Twitter Module media_entity_twitter crossed 10,000 active installs. Module Revived: Message 8.x-1.9 Module message updated after 17 months of inactivity (8.x-1.9).

Jotform API

3 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.

Activity

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

Release Timeline

Releases

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