DataPublisher for Word · May 2026
The Actions Tab is where data meets document. Everything in the Data Tab supports this tab — this is where you run merges, distribute documents for signature, collect responses back from recipients, send email campaigns, and measure the results.
The Actions Tab contains 7 sub-tabs arranged in two rows, plus a Reference panel accessible from inside Merge:
Row 1: Merge · E-Signatures · DataRequest
Row 2: Email Campaigns · Email Analytics · Email Config
A real-time progress bar appears at the top of the Actions Tab whenever a document generation job is running. It shows current operation, record counter, elapsed time, estimated remaining time, and a Cancel button.
Purpose: Generate Word documents by flowing your data through a template. This is the core engine of DataPublisher.
You need three things in place before clicking Run:
| What You Need | Where to Set It Up |
|---|---|
| A data file with records | Data → Files → Import Data File |
| Placeholders in your Word doc | Data → Builder, or type them manually |
| A layout decision | Right here in Merge |
Click the Data File dropdown and choose your uploaded CSV. The list shows all files from Data → Files.
Under Layout & Flow → Word Template, you can:
- Leave it blank to use the current document as-is
- Select a saved template from the dropdown, then click Load to inject it into the current document
- Click Download to retrieve the template file to your computer
If you load a template, it replaces the current document content — do this before you start editing, not after.
The Data Flow dropdown controls how records are laid out in the output document:
One per page
Each data record generates one complete copy of your template on its own page. Use this for personalized letters, contracts, certificates, invoices — anything where each recipient gets a separate document.
Example: 200 customer records → 200 pages, each a personalized letter
Single Document (ForEach loops)
All records flow into a single document using {#FOREACH} loop blocks you've placed in the template. Use this for reports, summaries, or any document that lists multiple records together.
Example: 50 order line items → one invoice with all items listed
Flow Columns
Records flow vertically through the document's column layout. Use this for directories, catalogs, or any multi-column flowing publication. You must first set up columns in Word (Layout → Columns → Two or More) before running.
Example: 400 business listings → a formatted directory flowing through two columns
Under Options → Graphic Library, choose a specific image library if your template uses images. Leave it on Auto-detect unless you have multiple libraries and need to target one specifically.
Click Run Action. The progress indicator shows:
- Current operation (e.g., "Processing record 47 of 200")
- Record counter
- Elapsed time and estimated completion
- A Cancel button to stop mid-run if needed
When complete, your Word document contains all generated content. Save it from Word as usual.
At the bottom of the Merge sub-tab is a button: Post-Processing Function Reference. Click it to open the full function library panel directly. See the Reference section for the complete list.
Purpose: Send the current Word document to one or more recipients for electronic signature. Track status and download signed copies — all without leaving Word.
The document is delivered to the recipient as a secure link. They open it in a browser, review it, and sign electronically. No account or software required on their end.
The invitation list shows all your e-sign requests. Use the Status Filter to view by state:
| Status | Meaning |
|---|---|
| Sent | Delivered, recipient hasn't opened yet |
| Viewed | Recipient opened the document |
| Signed | Recipient completed the signature |
| Expired | The signing link timed out before signing |
| Revoked | You cancelled the request |
Search by recipient name or email to find a specific request.
Archived records are hidden by default. Click 📦 Archived to include them in the list.
Purpose: Close the document loop. Send a secure form link embedded in a distributed document so recipients can respond, submit data, e-sign, and upload files — and all responses come back to your account automatically.
The user-facing term is DataRequest. Internally it uses the form_invitation system. Do not confuse with the E-Signatures sub-tab — DataRequests are for data collection, e-sign is for signature capture.
Everything you need to create and send a new DataRequest.
New DataRequest — opens the creation wizard. Define what information you're asking for, who you're sending to, and what the recipient sees.
Form Mirror — a preview pane that renders the form as the recipient will see it, live as you build it.
Form Builder — opens the drag-and-drop form schema designer. Add fields (text, dropdown, file upload, signature, date, etc.), configure validation and required fields, and save the schema to your Forms Library.
Forms Library — a collapsible panel showing all your saved form schemas. Click a schema to make it active for your next DataRequest. A green banner shows which schema is currently active.
The response inbox for all DataRequests you've sent.
Filter by status: Sent · Viewed · Draft · Submitted · Expired · Revoked
Search by recipient name or email
📦 Archived toggle shows/hides archived entries
Click any card in the list to expand it and see the response details, submitted data, uploaded files, and any e-signature captured with the response.
The Active DataRequest panel at the top of History highlights the currently selected request with quick buttons:
- Open Builder — re-open the form builder for this request
- Send Again — resend the link to the same recipient
Purpose: Send personalized, tracked email campaigns directly through your Microsoft 365 account via Microsoft Graph — no third-party email service, no SMTP setup, no workflow configuration.
Click Launch Email Campaign Wizard. The wizard walks through:
<<FirstName>>, <<company>>, etc.)Each recipient receives an individually personalized email from your own Microsoft account. Opens, clicks, and replies are tracked automatically.
Requires: A connected Microsoft account (configure in Email Config sub-tab first).
As you work through the wizard, your configuration is automatically saved. The Saved Campaign Configurations panel lists all your saved setups so you can reload and re-run a campaign without re-configuring from scratch.
Each saved campaign card shows:
- Campaign name and data file
- Last sent date and recipient count
- Quick action buttons: Edit, Re-run, Delete
The Sent Campaign Analytics panel shows a summary card for each campaign you've sent:
- Total emails sent
- Open count and open rate
- Click count and click-through rate
- Reply count
Click View All Analytics to jump to the Email Analytics sub-tab for the full dashboard.
Purpose: Aggregate tracking dashboard for all outbound email activity.
Four metric cards show totals across all campaigns:
| Card | Metric |
|---|---|
| Emails Sent | Total emails dispatched |
| Opens | Unique email opens (invisible tracking pixel) |
| Clicks | Total link clicks (proxy routing) |
| Replies | Replies captured via webhook |
The analytics data is collected server-side. Open tracking adds an invisible 1×1 pixel to the email body. Click tracking routes all links through the DataPublisher tracking server before forwarding to the destination.
Purpose: Connect your Microsoft 365 account to enable campaign sending, and configure tracking behavior.
Once connected, your name and email address appear in the Connected Account card.
To disconnect: click Disconnect on the account card. This removes the stored access token. Your sent email history is retained.
Three toggles control what is tracked for outgoing emails:
Track email opens — appends an invisible tracking pixel to each email. When the recipient's email client loads the pixel, an open event is recorded. Note: some email clients block external images, which prevents open tracking.
Track link clicks — rewrites all links in your emails to pass through the DataPublisher tracking server. Click events are recorded before the user is forwarded to the real destination.
Track replies — monitors for email replies via Microsoft Graph webhooks. A reply event is recorded when a recipient responds to a tracked email.
Once connected, the Test Send form lets you verify your setup before running a campaign:
Check your inbox for delivery confirmation.
The Reference panel is accessed by clicking Post-Processing Function Reference inside the Merge sub-tab. It contains the complete placeholder syntax guide and the full function library.
Text fields:
<<field_name>>
Replaced with the text value from your CSV column named field_name.
Image fields:
[[field_name]]
Replaced with an image. The field value should be the image filename (e.g., headshot.jpg). The image must exist in a Media library.
Conditional blocks:
{#IF field_name = value}
Content shown when true
{ELSE}
Content shown when false
{/IF}
Loop blocks (master-detail):
{#FOREACH ArrayName}
<<ArrayName.field_one>> — <<ArrayName.field_two>>
{/FOREACH}
Post-processing function syntax:
<<field_name>>{{FunctionName}}
<<field_name>>{{FunctionName:parameter}}
<<field_name>>{{Function1}}{{Function2}}
Functions follow immediately after the placeholder, inside {{ }}. Multiple functions chain left to right.
| Function | Effect | Example Output |
|---|---|---|
{{ToUpperCase}} |
Converts text to ALL CAPS | JOHN SMITH |
{{ToLowerCase}} |
Converts text to all lowercase | john smith |
{{ToTitleCase}} |
Converts to Title Case | John Smith |
{{TruncateText}} |
Truncates to 50 chars with ... |
This is a very long descr... |
{{TruncateTo:n}} |
Truncates to n characters | Set any limit |
| Function | Effect | Example Output |
|---|---|---|
{{FormatCurrency}} |
USD currency format | $1,234.56 |
{{FormatPhone}} |
US phone number format | (555) 123-4567 |
{{FormatNumber:2}} |
Numeric with n decimal places | 4.75 |
{{FormatPercent:1}} |
Percentage format | 85.5% |
{{FormatDate:MM/dd/yyyy}} |
Custom date pattern | 01/15/2026 |
{{FormatDate:MMMM d, yyyy}} |
Long date format | January 15, 2026 |
| Function | Effect |
|---|---|
{{MakeBold}} |
Bold formatting |
{{MakeItalic}} |
Italic formatting |
{{CenterText}} |
Center-align the paragraph |
{{SetFontSize:16}} |
Set font size in points |
{{SetColor:#FF0000}} |
Set text color (hex code) |
{{SetFontColor}} |
Set text color to blue (default) |
{{ApplyCharStyle}} |
Apply/create a character style named DBPUBCS_fieldname |
| Function | Effect |
|---|---|
{{RemoveLineIfEmpty}} |
Removes the entire paragraph if the field is empty |
{{RemoveSpaceIfEmpty}} |
Removes extra whitespace if the field is empty |
{{AddPrefixIfNotEmpty}} |
Adds • bullet prefix only when field has a value |
{{AddPrefix:text}} |
Adds custom text before the value |
{{AddSuffix:text}} |
Adds custom text after the value |
{{ClassHeader}} |
Shows the value only on its first occurrence (group headers) |
Examples:
<<address2>>{{RemoveLineIfEmpty}} → removes the line if address2 is blank
<<feature>>{{AddPrefix:★ }} → "★ Great location"
<<name>>{{AddSuffix:, CEO}} → "Jane Doe, CEO"
<<category>>{{ClassHeader}} → shows "Houses" only once per category group
These apply different formatting based on the value at merge time.
{{ConditionalColor:Value=color,Value=color}}
Text color based on exact string matches.
<<status>>{{ConditionalColor:Active=green,Inactive=red}}
{{ConditionalHighlight:Value=color,Value=color}}
Background highlight color based on string matches.
<<priority>>{{ConditionalHighlight:High=yellow,Low=lightblue}}
{{ConditionalColorNumeric:condition=color,...}}
Text color based on numeric comparisons. Supports >, <, >=, <=, ranges (25-75), and exact values.
<<score>>{{ConditionalColorNumeric:>=90=green,70-89=orange,<70=red}}
<<temperature>>{{ConditionalColorNumeric:>=100=red,70-99=orange,<70=blue}}
{{ConditionalFormatNumeric:condition=attributes,...}}
Multiple font attributes based on numeric conditions. Attributes: family, size, color, bold, italic, underline, strikethrough, smallCaps, allCaps, highlightColor, and more.
<<revenue>>{{ConditionalFormatNumeric:>=1000000=size:18;color:darkgreen;bold:true,<1000000=size:14;color:gray}}
{{ConditionalFormatString:Value=attributes,...}}
Multiple font attributes based on text matches. Use ! prefix for "not equals".
<<status>>{{ConditionalFormatString:Completed=color:green;bold:true,Pending=color:orange;italic:true,Failed=color:red;strikethrough:true}}
<<level>>{{ConditionalFormatString:Premium=size:16;color:gold;bold:true;allCaps:true,!Premium=size:12;color:gray}}
| Function | Effect |
|---|---|
{{InsertImage}} |
Insert image from a Media library at the placeholder location |
{{SetImageWidth:n}} |
Set image width in points (108 pts = 1.5 inches) |
{{CenterImage}} |
Center-align the image |
{{AlignImageLeft}} |
Left-align with text wrapping |
{{AlignImageRight}} |
Right-align with text wrapping |
{{ResizeImageTo:WxH}} |
Resize to exact dimensions (e.g., 300x200) |
{{ResizeImageTo:n}} |
Resize to specific width, height auto-scales |
| Function | Effect |
|---|---|
{{DotLeaders}} |
Adds dot leaders for tabular layouts — Item ........ $19.99 |
| Function | Effect |
|---|---|
{{CreateTable:,}} |
Converts comma-separated field content into a Word table |
{{CreateTable:\|}} |
Converts pipe-delimited field content into a Word table |
<<name>>{{ToUpperCase}}{{MakeBold}} — applies both in order left to right{{FormatNumber:2}}, {{TruncateTo:30}}= and ,: {{ConditionalColor:Yes=green,No=red}}ToUpperCase not touppercase{{RemoveLineIfEmpty}} to keep layouts clean when optional fields are blank[[field]] placeholders, not <<field>> placeholders<<FirstName>>, <<Address>>, etc.)Prerequisites: Microsoft account connected in Email Config
<<name>>, <<phone>>, etc.Nothing happens when I click Run Action
- Verify a data file is selected in the dropdown
- Verify a Data Flow option is selected
- Check the Actions message area at the top of the tab for error text
The progress bar shows 0% and stops
- Your template may have a placeholder that doesn't match any column name in the data file. Check for typos: <<FirstNme>> vs <<FirstName>>. Column names are case-insensitive but must match exactly otherwise.
Images are missing in the output
- Confirm {{InsertImage}} is on the placeholder
- Confirm the image library name and filename match exactly (case-sensitive)
- Confirm the Graphic Library dropdown is set to Auto-detect or the correct library
Email campaign wizard says "not connected"
- Go to Email Config, connect your Microsoft account, refresh status, then return to Email Campaigns
E-sign status hasn't changed after recipient signed
- Click the Refresh button (↻) on the E-Signatures sub-tab to pull the latest status from the server
DataRequest form link isn't working for the recipient
- Verify the link hasn't expired. Resend from the History panel using Send Again
- Check whether the form schema is still active in the Forms Library
Flow Columns output is one long column, not two
- Word column layout must be configured before running the merge. Set Layout → Columns → Two in Word, then run again.
ConditionalColor isn't changing the text
- Function names and value names must match the data exactly (case-insensitive for values, case-sensitive for function names)
- Ensure there are no extra spaces in the function syntax