Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Release: Opensolr Search 4.5.0 Minor update available for module opensolr_search (4.5.0). Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Usage Milestone: Simplify Module simplify crossed 10,000 active installs. Usage Milestone: Views Reference Filter Module entityreference_filter crossed 10,000 active installs. Usage Milestone: Dropdown Language Module dropdown_language crossed 10,000 active installs. Usage Milestone: Paragraphs Browser Module paragraphs_browser crossed 10,000 active installs. Usage Milestone: OpenAPI Module openapi crossed 10,000 active installs. Usage Milestone: Decoupled Router Module decoupled_router crossed 10,000 active installs. Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

This module makes webforms created in Drupal accessible to headless frontends via GraphQL. It allows decoupled applications to display forms, collect user input, and manage submissions with support for various field types, conditional logic, file uploads, and validation.

GraphQL Webform exposes forms built with the Webform module to a decoupled (headless) frontend through GraphQL. Forms are designed in Drupal with Webform as usual; a frontend (React, Vue, a mobile app, …) can then display them, collect input and send submissions back.

What it does

  • The most commonly used form elements are supported (see the list below).
  • Supports conditional fields: depending on a visitor's answers, other fields can appear, hide or become required.
  • Submissions are validated, and validation errors are returned for each field.
  • A confirmation message, title and redirect are returned after a submission.
  • File uploads are supported.
  • Closed forms, scheduled open and close dates, and submission limits are handled, including the message to display when a form is unavailable.

Requirements

Two optional modules add more elements when installed: Address (for the address element) and Telephone Validation (for validating phone numbers).

Branches

  • 1.x: Supports GraphQL 3.x
  • 2.x: Supports GraphQL 4.x
  • 3.x: Supports GraphQL 5.x

Supported elements

Text & input

  • Text field
  • Text area
  • Email
  • Telephone
  • URL
  • Hidden
  • Autocomplete
  • Number, Range, Rating, Scale
  • Color
  • Signature
  • Name

Date & time

  • Date
  • Date and time
  • Time

Choices

  • Select / dropdown
  • Radios
  • Checkboxes
  • Select, radios and checkboxes with an “other” option
  • Table select
  • Likert
  • Term and entity select

Files

  • File upload
  • Audio file

Layout & groups

  • Fieldset
  • Details
  • Section
  • Flexbox
  • Composite (a group of the elements above)
  • Address

Display & actions

  • Markup and formatted text
  • Message
  • Horizontal rule
  • Computed value
  • Terms of service
  • Submit and reset buttons

Contributing

Bug reports, feature requests and MRs are welcome! Please use the issue queue.

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
8
Tracked since
Oct 2024
Latest release
1 month ago
Releases (12 mo)
6 ▲ from 2
Maintenance
Active

Release Timeline

Releases

Version Type Core Release date
3.0.0-beta1 Pre-release 10–11 Jul 1, 2026
3.0.0-alpha3 Pre-release 10–11 Jun 19, 2026
3.0.0-alpha2 Pre-release 10–11 Jun 18, 2026
3.0.0-alpha1 Pre-release 10–11 May 28, 2026
3.x-dev Dev 10–11 May 15, 2026
2.0.0-beta1 Pre-release 10–11 Oct 17, 2025
2.0.0-alpha3 Pre-release 10–11 Aug 20, 2025
2.0.0-alpha2 Pre-release 10–11 Oct 22, 2024