Back to Guide Directory

Actions Tab — Visual Guide

DataPublisher for Word · May 2026

Diagrams and flow charts for the Actions Tab structure, merge flows, email pipeline, and distribution workflows.


Tab Structure

ACTIONS TAB
│
├── Row 1
│   ├── Merge          ← Core document generation engine
│   ├── E-Signatures   ← Send docs for e-sign · track status
│   └── DataRequest    ← Outbound form links · collect responses
│
└── Row 2
    ├── Email Campaigns  ← Send tracked email via Microsoft Graph
    ├── Email Analytics  ← Opens · clicks · replies dashboard
    └── Email Config     ← Microsoft account connection + tracking
        │
        └── Reference (accessed via button in Merge)
            ← Placeholder syntax + full function library

Merge — Decision Flow

BEFORE RUNNING MERGE
      │
      ├── Data file uploaded?    Data → Files → Import Data File
      │
      ├── Placeholders in doc?   Type <<FieldName>> OR use Data → Builder
      │
      └── Layout decided?
                │
                ├── Each record on its own page?
                │       └── Data Flow: One per page
                │
                ├── All records in one document with loop blocks?
                │       └── Data Flow: Single Document (ForEach loops)
                │
                └── Records flowing through columns?
                        └── Set Word columns first (Layout → Columns)
                            └── Data Flow: Flow Columns
                                      │
                                      ▼
                                  RUN ACTION
                                      │
                                      ▼
                             Progress bar (cancel available)
                                      │
                                      ▼
                              Generated document

Data Flow Options Compared

ONE PER PAGE                  SINGLE DOCUMENT              FLOW COLUMNS
────────────                  ───────────────              ────────────

Template:                     Template:                    Template:
┌──────────────┐              ┌──────────────┐            ┌──────────────┐
│ <<Name>>     │              │ Report       │            │ <<Name>>     │
│ <<Address>>  │              │ {#FOREACH x} │            │ <<Phone>>    │
│ Dear <<Name>>│              │ <<x.item>>   │            │ <<Name>>     │
│ ...letter... │              │ {/FOREACH}   │            │ <<Phone>>    │
└──────────────┘              └──────────────┘            │ ...flowing...│
        │                             │                   └──────────────┘
        ▼                             ▼                          │
Output (3 records):           Output (3 records):                ▼
Page 1: Alice letter          Single document               Output (3 records):
Page 2: Bob letter            with all 3 items              2-column directory
Page 3: Carol letter          listed in sequence            flowing top to bottom

Post-Processing Function Anatomy

<<field_name>>{{FunctionName:parameter}}{{AnotherFunction}}
      │                │          │              │
      │                │          │              └── Chain more functions
      │                │          └── Optional parameter (colon separator)
      │                └── Function name (case-sensitive, in {{ }})
      └── Data field placeholder (column name from CSV)

Examples:
  <<price>>{{FormatCurrency}}
  <<name>>{{ToUpperCase}}{{MakeBold}}
  <<date>>{{FormatDate:MMMM d, yyyy}}
  <<score>>{{ConditionalColorNumeric:>=90=green,70-89=orange,<70=red}}
  <<description>>{{TruncateTo:50}}{{RemoveLineIfEmpty}}

Conditional Block Anatomy

{#IF field_name = comparison_value}
  ← content shown when condition is TRUE →
{ELSE}
  ← content shown when condition is FALSE →
{/IF}

Supported operators:
  =   !=   >   <   >=   <=   CONTAINS   STARTSWITH   ENDSWITH

Example:
{#IF status = Active}
  This account is in good standing.
{ELSE}
  This account requires attention.
{/IF}

ELSE clause is optional:
{#IF renewal_date = 2026}
  Renewal due this year.
{/IF}

ForEach Loop Anatomy

Master file: orders.csv         Detail file: order_items.csv
  order_id | customer_name        order_id | product | qty | price
  ─────────────────────          ────────────────────────────────
  101      | Alice Smith          101      | Widget A | 2  | 9.99
  102      | Bob Jones            101      | Widget B | 1  | 24.99
                                  102      | Gadget X | 3  | 14.99


Template:
  Order for <<customer_name>>
  {#FOREACH order_items}
    <<order_items.product>>  Qty: <<order_items.qty>>  $<<order_items.price>>
  {/FOREACH}
  ────────────────────

Output (Order 101):
  Order for Alice Smith
    Widget A  Qty: 2  $9.99
    Widget B  Qty: 1  $24.99
  ────────────────────

E-Signature Workflow

You (in Word)                   Recipient                   DataPublisher
─────────────                   ─────────                   ─────────────
Open document
      │
      ▼
Actions → E-Signatures
      │
      ▼
+ Send for Signature
Enter: name, email ──────────────► Email with secure link
      │                                   │
      ▼                                   ▼
Status: Sent                      Recipient opens link
      │                                   │
      ▼                                   ▼
Status: Viewed                    Views document
      │                                   │
      ▼                                   ▼
Status: Signed ◄─────────────────  Signs electronically
      │                                              │
      ▼                                              │
Download signed copy ◄────────────── Signed doc archived

DataRequest Workflow

You (Compose)                   Recipient                   DataPublisher
─────────────                   ─────────                   ─────────────
Form Builder
  → Design fields
  → Save to Library
      │
      ▼
Activate schema
      │
      ▼
New DataRequest ──────────────► Email with secure form link
Enter: name, email                         │
      │                                    ▼
      ▼                          Opens form in browser
Status: Sent                               │
      │                                    ▼
      ▼                          Fills fields, uploads files,
Status: Viewed                   e-signs if required
      │                                    │
      ▼                                    ▼
Status: Submitted ◄────────── Submits form
      │
      ▼
History panel shows response
  → View submitted data
  → Download uploaded files
  → Review e-signature

Email Campaign Pipeline

CSV (recipient list)
      │
      ▼
Email Campaign Wizard
  Step 1: Select data file
  Step 2: Map email column
  Step 3: Compose subject + body (with <<merge fields>>)
  Step 4: Preview personalized sample
  Step 5: Send
      │
      ▼
Microsoft Graph API ──► Personalized email from your M365 address
      │                         │
      │              ┌──────────┴──────────┐
      │              │                     │
      ▼              ▼                     ▼
DataPublisher    Open pixel         Click proxy link
tracking server  fires              fires
      │              │                     │
      ▼              ▼                     ▼
Email Analytics Dashboard
  │── Emails Sent count
  │── Opens count
  │── Clicks count
  └── Replies count (via Graph webhook)

Email Config Status Flow

First time:                        After connecting:
───────────                        ─────────────────
"Not Connected"                    Connected account card
[Connect Microsoft Account]              │
      │                            Account name + email
      ▼                            [Refresh] [Disconnect]
Microsoft sign-in page                   │
      │                            Tracking toggles:
      ▼                              ☑ Track opens
Approve permissions                  ☑ Track clicks
      │                              ☑ Track replies
      ▼                                   │
Return to taskpane                  Test Send form
[Refresh Status]                     (verify connection)
      │
      ▼
Connected account card appears

Actions Tab — Function Category Map

POST-PROCESSING FUNCTIONS BY CATEGORY

Text Formatting          Data Formatting          Visual Styling
───────────────          ───────────────          ──────────────
ToUpperCase              FormatCurrency           MakeBold
ToLowerCase              FormatPhone              MakeItalic
ToTitleCase              FormatNumber:n           CenterText
TruncateText             FormatPercent:n          SetFontSize:n
TruncateTo:n             FormatDate:pattern       SetColor:#hex
                                                  SetFontColor
                                                  ApplyCharStyle

Conditional Logic        Dynamic Formatting       Images
─────────────────        ──────────────────       ──────
RemoveLineIfEmpty        ConditionalColor         InsertImage
RemoveSpaceIfEmpty       ConditionalHighlight     SetImageWidth:n
AddPrefixIfNotEmpty      ConditionalColorNumeric  CenterImage
AddPrefix:text           ConditionalFormatNumeric AlignImageLeft
AddSuffix:text           ConditionalFormatString  AlignImageRight
ClassHeader                                       ResizeImageTo:WxH
TruncateTo:n
                         Layout & Tables
                         ───────────────
                         DotLeaders
                         CreateTable:,
                         CreateTable:|