Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

FILL

Populates a document template with data from variables or objects.

Syntax

result = FILL template, data
FILL template, data TO output_path

Parameters

ParameterTypeDescription
templateStringPath to template file (Word, Excel, PDF, or text)
dataObjectKey-value pairs for placeholder replacement
output_pathStringOptional destination path for filled document

Description

FILL replaces placeholders in document templates with actual data values. Placeholders use double curly braces like {{name}} or {{company}}. This is useful for generating personalized documents, contracts, invoices, and reports.

Examples

Basic Template Fill

data = #{
    name: "John Smith",
    company: "Acme Corp",
    date: FORMAT(TODAY(), "MMMM d, yyyy")
}

result = FILL "templates/contract.docx", data
TALK "Document generated: " + result.path

Invoice Generation

invoice_data = #{
    invoice_number: "INV-2025-001",
    customer_name: customer.name,
    customer_email: customer.email,
    items: order_items,
    subtotal: subtotal,
    tax: tax_amount,
    total: total_amount,
    due_date: FORMAT(DATEADD("day", 30, TODAY()), "yyyy-MM-dd")
}

FILL "templates/invoice.docx", invoice_data TO "invoices/INV-2025-001.docx"
TALK "Invoice generated and saved"

Certificate Generation

certificate = #{
    recipient: participant.name,
    course: "AI Fundamentals",
    completion_date: FORMAT(TODAY(), "MMMM d, yyyy"),
    instructor: "Dr. Sarah Johnson",
    certificate_id: GUID()
}

FILL "templates/certificate.docx", certificate TO "certificates/" + certificate.certificate_id + ".docx"

Email Template

email_data = #{
    first_name: user.first_name,
    order_id: order.id,
    tracking_number: shipment.tracking,
    delivery_date: shipment.estimated_delivery
}

body = FILL "templates/shipping-notification.txt", email_data
SEND MAIL user.email, "Your order has shipped!", body

Supported Template Formats

FormatExtensionPlaceholder Style
Word.docx{{placeholder}}
Excel.xlsx{{placeholder}}
Text.txt{{placeholder}}
HTML.html{{placeholder}}
Markdown.md{{placeholder}}

Return Value

Returns an object containing:

PropertyDescription
pathPath to the generated document
contentDocument content (for text formats)
sizeFile size in bytes

Sample Conversation

Template Example

A template file might look like:

SERVICE AGREEMENT

This agreement is entered into on {{date}} between:

Company: {{company_name}}
Contact: {{contact_name}}
Email: {{contact_email}}

SERVICES:
{{service_description}}

TERMS:
Duration: {{duration}} months
Payment: ${{monthly_amount}} per month
Start Date: {{start_date}}

Signature: _____________________

Advanced: Lists and Tables

For repeating data, use array placeholders:

data = #{
    customer: "Acme Corp",
    items: [
        #{name: "Widget", qty: 10, price: 29.99},
        #{name: "Gadget", qty: 5, price: 49.99}
    ],
    total: 549.85
}

FILL "templates/order.docx", data TO "orders/order-123.docx"

In the template, use {{#items}}...{{/items}} for loops.

See Also