EzFlowEzFlow Docs
Templates

PDF templates

Creating PDF documents with dynamic data from Workflow variables.

PDF templates let you design document layouts that EzFlow renders into PDF files at Workflow run time. Variable fields in the template are replaced with live data before the PDF is generated.

Creating a PDF template

Open Templates in the app sidebar and click New template. Choose PDF as the channel type. This opens the PDF template editor at /pdf-template-creator/<id>.

The editor lets you compose a document layout. The saved state is stored in two separate records:

  • A Document record (type PDF) holds the compiled template content, name, description, and a thumbnail preview.
  • A PdfTemplate record holds the file reference (filename), the rendering engine identifier (engine), and the extracted variable list (variables as JSON).

Variables

Mark a field as dynamic by typing {{variableName}} in the template body. Variable names may contain letters, digits, underscores, and dots.

Examples:

{{recipient.name}}
{{invoiceNumber}}
{{issueDate}}

The variables field on the PdfTemplate record stores the list of detected placeholder names so the PDF generation nodes know which values to expect at run time.

Template fields

Document record (type PDF)

FieldWhat it stores
nameDisplay name shown in the Templates list
descriptionOptional description
typeAlways PDF
compiledTemplateThe template body with {{variable}} placeholders
templateDataRaw editor layout data
thumbnailPreview image URL

PdfTemplate record

FieldWhat it stores
filenameStorage key for the uploaded template file
engineRendering engine identifier
variablesJSON array of detected placeholder names

Using a PDF template in a Workflow

Two nodes can render a PDF template:

  • PDF_GENERATOR — renders the template synchronously and returns the PDF file in the Workflow context.
  • ASYNC_PDF_GENERATOR — queues the render job asynchronously, which is useful for large or complex documents.

Both nodes accept the template ID and the variable values to inject. The output is a PDF file or a storage reference you can pass to a downstream node (such as SEND_MAIL with an attachment, or STORAGE to persist the file).

On this page