# FILL Populates a document template with data from variables or objects. ## Syntax ```basic result = FILL template, data FILL template, data TO output_path ``` ## Parameters | Parameter | Type | Description | |-----------|------|-------------| | `template` | String | Path to template file (Word, Excel, PDF, or text) | | `data` | Object | Key-value pairs for placeholder replacement | | `output_path` | String | Optional 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 ```basic 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 ```basic 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 ```basic 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 ```basic 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 | Format | Extension | Placeholder Style | |--------|-----------|-------------------| | Word | `.docx` | `{{placeholder}}` | | Excel | `.xlsx` | `{{placeholder}}` | | Text | `.txt` | `{{placeholder}}` | | HTML | `.html` | `{{placeholder}}` | | Markdown | `.md` | `{{placeholder}}` | ## Return Value Returns an object containing: | Property | Description | |----------|-------------| | `path` | Path to the generated document | | `content` | Document content (for text formats) | | `size` | File 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: ```basic 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 - [GENERATE PDF](./keyword-generate-pdf.md) - Convert filled documents to PDF - [MERGE PDF](./keyword-merge-pdf.md) - Combine multiple documents - [UPLOAD](./keyword-upload.md) - Upload generated documents - [SEND MAIL](./keyword-send-mail.md) - Email generated documents ---