Watermark
Stamp text on PDFs
Lays text over every page of a PDF, such as CONFIDENTIAL, DRAFT, or the recipient's own name, so the document is branded or harder to pass around unnoticed.
How it works
Watermark writes words across the pages of a PDF without changing the underlying content. The text sits on top of whatever is already there, so a contract, quote, or report keeps its layout while gaining a visible label.
The classic use is a status marker like DRAFT or CONFIDENTIAL, but you can also stamp something personal to the reader, like their name or email, drawn from earlier steps in the flow. A watermark that reads a specific person's name makes leaked copies traceable back to who received them.
Because it works page by page across the whole file, you do not place the text yourself. You set what it should say and roughly how it should sit, and every page comes out labeled the same way.
Common use cases
Real situations where this node earns its place in a flow.
Stamp DRAFT or CONFIDENTIAL
Overlay a status word across a document before it circulates internally.
Add your mark
Stamp a logo or company name onto outgoing PDFs for branding.
Label each copy
Watermark every copy with who it went to, to discourage forwarding.
Watermark in a workflow
A simple example of where this node sits in a flow.
What you set up
- Type the text to overlay, or pull it from an earlier value so each copy can carry a different name.
- Choose the look: angle across the page, size, and how faint or bold the text sits over the content.
- Point it at the PDF coming in from the step before it.
Common questions
Can each recipient get their name on their own copy?
Yes. If the watermark text comes from a value in the flow (like a submitter's name), every generated copy carries that person's label instead of one fixed word.
Does the watermark cover up the text underneath?
No. It sits over the page as a semi-transparent overlay, so the original content stays readable while the label shows through.
Settings you configure on this node, stored under data.config in the workflow JSON. Leave a field unset to use its default.
textText stamped across every page; blank makes the text watermark a passthrough.
Type: stringopacityWatermark opacity from 0 (invisible) to 1 (opaque), for text and image overlays.
Type: numberDefault:0.15fontSizeText watermark font size in points.
Type: numberDefault:48colorText color as a hex string.
Type: stringDefault:#808080rotationText watermark rotation in degrees.
Type: numberDefault:45layoutHow the text watermark is placed on each page.
Type: enum: diagonal | tiled | centerDefault:diagonalimageLayoutHow an upstream image/logo overlay is placed on each page.
Type: enum: cover | contain | center | tiledDefault:coverimageScaleFor center/tiled image overlay, drawn width as a fraction of page width.
Type: numberDefault:0.3imageRotationImage overlay rotation in degrees.
Type: numberDefault:0
How this node appears inside a workflow's nodes[] array (the shape you see in the Developer export / import). A full workflow is { nodes: [...], edges: [...] }.
{
"id": "watermark",
"type": "card",
"position": {
"x": 160,
"y": 120
},
"data": {
"type": "watermark",
"kind": "processor",
"title": "Watermark",
"subtitle": "Stamp text on PDFs",
"config": {
"text": "",
"opacity": "0.15",
"fontSize": "48",
"color": "#808080",
"rotation": "45",
"layout": "diagonal",
"imageLayout": "cover",
"imageScale": "0.3",
"imageRotation": "0"
}
}
}