Smartsheet Row to Document Generation
When a Smartsheet row reaches a Ready status, the flow merges its cell values into a Word/PDF template (SOW, work order, certificate), saves the document to SharePoint, attaches it back to the row, and emails it to the contact. Turns approved rows into finished documents automatically.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
This flow turns approved Smartsheet rows into finished, on-brand documents. On a daily schedule it scans a Smartsheet sheet, finds rows whose Status equals the configured "Ready" value, merges each row's cell values into a Word Online template, converts the result to PDF, saves both the .docx and .pdf to SharePoint, emails the PDF to the row's contact (Outlook), and posts the document link back onto the Smartsheet row as a comment.
Why it matters: Re-keying row data into Word/PDF documents (SOWs, work orders, certificates) is slow and error-prone. Template merge produces consistent documents straight from the sheet, with the row kept as the system of record via a comment link.
Use Case
Operations and Sales teams that capture structured intake in Smartsheet need polished documents generated automatically once a row is approved/ready — without copying values by hand and without leaving Smartsheet as the source of truth.
Flow Architecture
Recurrence
Built-in (Day / 1, 7:00 AM ET)Daily scan for newly Ready rows.
Initialize_* (7 vars)
Initialize Variable (String)Surface env vars + config: site URL, docs path, ready-status value, status/doc-name/email column titles, email subject prefix.
Get_Smartsheet_Rows
Smartsheet — GetSheetDataRead all rows from the configured sheet (keyed by column title + system row id).
Filter_Ready_Rows
Query (Filter array)Keep only rows where Status == Ready value.
Apply_to_each_Ready_Row
Foreach (concurrency 1)Process each ready row sequentially.
Compose_Template_Fields
ComposeMap row columns to Word template merge fields.
Populate_Word_Template
Word Online (Business) — CreateFileItemMerge field values into the .docx template.
Save_Docx_To_SharePoint
SharePoint — CreateFileSave merged .docx to the generated-docs library.
Convert_Docx_To_PDF
Word Online (Business) — GetFilePDFConvert the stored .docx to PDF.
Save_PDF_To_SharePoint
SharePoint — CreateFileSave the PDF alongside the .docx.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_SmartsheetSheetId | String | <configure> | Smartsheet sheet to scan. |
| flowlibs_SmartsheetReadyStatusValue | String | Ready | Status value that triggers generation. |
| flowlibs_SmartsheetStatusColumn | String | Status | Column title holding row status. |
| flowlibs_SmartsheetDocNameColumn | String | Document Name | Column title used to name the file. |
| flowlibs_SmartsheetEmailColumn | String | Contact Email | Column title with recipient email. |
| flowlibs_GeneratedDocsLibPath | String | /Shared Documents/Generated Documents | SharePoint folder for output files. |
| flowlibs_GeneratedDocsDriveId | String | <configure> | Output library drive id for GetFilePDF. |
| flowlibs_WordTemplateSource | String | https://your-tenant.sharepoint.com | Word Online template source site. |
| flowlibs_WordTemplateDriveId | String | <configure> | Template library drive id. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Smartsheet | shared_smartsheet | GetSheetData AddDiscussionToRow |
| Word Online (Business) | shared_wordonlinebusiness | CreateFileItem GetFilePDF |
| SharePoint | shared_sharepointonline | CreateFile |
| Office 365 Outlook | shared_office365 |
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Template fields
- Rename the keys in Compose_Template_Fields (e.g. ClientName, ProjectName, Amount) to match your Word template's content controls, and point them at your sheet's column titles.
- Per-type templates
- Branch on a row Document Type column and switch flowlibs_WordTemplateFilePath to pick SOW vs. work order vs. certificate.
- e-signature
- After Save_PDF_To_SharePoint, route the PDF to an e-sign service (DocuSign/Adobe) before emailing.
- Document numbering
- Prepend a sequential/GUID number to the file name in Save_* and the email subject.
- Schedule
- Change the Recurrence frequency, or swap to a Smartsheet OnRowCreated/OnUpdatedSpecificSheet trigger for near-real-time generation.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Ready-row filter (Query where)
Keeps only rows at the Ready status.
EXPR.02Merge field map (Compose)
One key per Word template field.
EXPR.03Pass whole field object to Word
Sidesteps dynamic-schema resolution on an Off demo.
EXPR.04Convert the saved file
GetFilePDF file input.
EXPR.05File name
Builds the output file name.
EXPR.06PDF email attachment
Attaches the generated PDF to the email.
EXPR.07Comment back to row
Posts the SharePoint link back onto the row.
Customize & download
Generate a ready-to-import copy of this solution with your environment-variable values baked in — available on Base, Pro, or Team.
Upgrade to customize
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.