--- title: "Drupal" description: "A full FlowDrop backend shipped as a Drupal module — node definitions, workflow storage, execution, and triggers." source: https://flowdrop.io/docs/drupal site: FlowDrop documentation --- # Drupal The **Drupal server implementation** is a complete FlowDrop backend packaged as a Drupal module. It serves node definitions, stores workflows as configuration entities, runs executions, and authenticates requests — everything the [frontend–backend contract](/concepts/what-is-a-workflow#the-frontend-backend-contract) expects, integrated with the entities, users, and content you already have. The official module page — releases, downloads, and the issue queue. Installation, node reference, execution modes, triggers, and developer guides on the canonical Drupal docs site. ## How it maps to FlowDrop Everything you learned in [Concepts](/concepts/what-is-a-workflow) carries over — the Drupal module is the backend that gives those workflows meaning: | FlowDrop concept | In the Drupal server | | ---------------- | -------------------- | | Node definitions (`GET /nodes`) | 25+ built-in node processors (data, control flow, entity operations, HTTP, AI), defined as PHP plugins | | Workflow storage | Workflows are Drupal **configuration entities** — exportable to YAML, versionable in git, deployable with `drush cex/cim` | | Execution | Runs every workflow the editor produces, recording results per node | | Authentication | Standard Drupal permissions and session/token auth behind an `AuthProvider` | ## What it adds on top Beyond the core contract, the Drupal server brings backend-side capabilities the editor surfaces but does not itself implement: - **Execution modes** — Synchronous (in-request), Asynchronous (queue-based background), and StateGraph (checkpointed, resumable). - **Triggers** — start workflows automatically on entity changes, user events, or cron. - **Human-in-the-loop** — pause execution for confirmations, choices, or free-text input. - **Pipelines and jobs** — every run produces a pipeline record with one job per node for monitoring and debugging. - **Node Types** — pre-set node variants site builders configure without code. - **Port shapes** — name a domain data type (`Order`, `User`), give it a JSON Schema, and every port carrying it gets a color, a badge, compatibility gating, and field-level template autocomplete. Declared in code by a module or in the UI by a site builder, and served to the editor as a [data type schema](/concepts/port-system#data-type-schemas). ## Get started The Drupal docs site is the source of truth for setup and reference: - [Get the module on Drupal.org →](https://www.drupal.org/project/flowdrop) - [Install FlowDrop on Drupal →](https://project.pages.drupalcode.org/flowdrop/getting-started/installation/) - [Node reference →](https://project.pages.drupalcode.org/flowdrop/guide/nodes/) - [Execution modes →](https://project.pages.drupalcode.org/flowdrop/guide/execution-modes/) - [Developer guide (custom node processors, triggers, orchestrators) →](https://project.pages.drupalcode.org/flowdrop/development/flowdrop-node-processor/)