Your First Workflow: Auto-Log Messages¶
In this tutorial, you will build a workflow that takes text input, formats it with a template, and logs the result to Drupal's watchdog. This covers the fundamentals you need to build any FlowDrop workflow.
What You Will Learn¶
- Adding and configuring multiple nodes
- Connecting data ports between nodes
- Understanding how data flows through edges
- Executing a workflow and inspecting results
Prerequisites¶
- FlowDrop installed with core modules enabled (Installation guide)
Step 1: Create a New Workflow¶
- Navigate to Administration > FlowDrop > Workflows (
/admin/flowdrop/workflows). - Click + Add Workflow.
- Enter the label "Article Logger" and click Save.

Step 2: Open the Visual Editor¶
From the workflow listing, click the dropdown on your "Article Logger" workflow and select Open in Editor.
Step 3: Add a TextInput Node¶
- Click the + button to open the node palette.
- Find Text Input under the Text & Output category (or search for it).
- Click to add it to the canvas.
- Click on the node to open its configuration panel.
- Enter some sample text, e.g.,
Breaking news: FlowDrop is live!

The TextInput node provides a simple text value as output. It is the starting point for many workflows.
Step 4: Add a PromptTemplate Node¶
- Click + again and add a Prompt Template node.
- Click on the node to configure it.
- In the template field, enter:
Article received: {{ text }}

Template Syntax
PromptTemplate uses Twig syntax. Use {{ variable_name }} to insert a value. The variable name must match the name of an input port. When data flows into the port, it replaces the placeholder in the template.
Step 5: Add a Logger Node¶
- Click + and add a Logger node.

The Logger node writes its input to Drupal's watchdog log, which you can view at Reports > Recent log messages.
Step 6: Connect the Nodes¶
Draw edges to connect the data flow:
- TextInput → PromptTemplate: Drag from the TextInput output port to the PromptTemplate's
textinput port. - PromptTemplate → Logger: Drag from the PromptTemplate output port to the Logger's
messageinput port.

Your workflow now reads: "Take the text input, insert it into the template, and log the result."
Step 7: Save and Execute¶
- Click Save in the editor toolbar.
- Navigate to Administration > FlowDrop > Execute (
/admin/flowdrop/execute). - Click Execute Workflow.
- Select the Article Logger workflow from the dropdown.
- Choose the Synchronous orchestrator.
- Click Execute.
The pipeline result page shows the execution status. Each node appears with its status (completed, failed, etc.) and you can click on individual jobs to see their input and output data.

Step 8: Check the Logs¶
Navigate to Reports > Recent log messages (/admin/reports/dblog) and look for entries from FlowDrop. You should see your formatted message: Article received: Breaking news: FlowDrop is live!

Understanding What Happened¶
When you executed the workflow, FlowDrop:
- Resolved execution order — determined that TextInput has no dependencies and runs first, then PromptTemplate, then Logger.
- Executed TextInput — produced the text value you entered.
- Passed data via edges — the text flowed through the edge into PromptTemplate's
textinput port. - Executed PromptTemplate — replaced
{{text}}with the actual value, producing the formatted string. - Passed data again — the formatted string flowed into Logger's
messageinput port. - Executed Logger — wrote the message to Drupal's watchdog log.
Each node execution was tracked as a Job within a Pipeline (one complete run of the workflow).
Challenge: Extend the Workflow¶
Try adding branching logic between the PromptTemplate and Logger using an IfElse node:
- Remove the existing edge between PromptTemplate and Logger (select the edge and delete it).
- Click + and add an IfElse node from the Control Flow category.
- Click on the IfElse node to open its configuration panel. Set the condition to check whether the input text contains a specific word (e.g.,
Breaking). - Connect the PromptTemplate output port to the IfElse node's input port.
- Connect the IfElse node's True branch output to the Logger node's input.
- Add a second Logger node and connect the IfElse node's False branch output to it.
- Save and execute the workflow.
You should see only the Logger on the "True" branch execute, since your text contains "Breaking". Try changing the TextInput value to something without that word and re-execute — the other branch should fire instead.
This introduces branching logic — a core concept for building real-world workflows. See Connecting Nodes for more on gateway nodes and branches.
Next Steps¶
- Key Concepts — Understand the terminology and architecture
- Visual Editor Guide — Learn all editor features
- Connecting Nodes — Deep dive into ports, edges, and data types