agenthub · sheet.write
Write one value into an uploaded spreadsheet: find the row whose key column matches, and set another column on it.
Why the node earns its place
The write half of the spreadsheet loop — record an answer back into the sheet the workflow read from. It mirrors the row-update contract the workspace data tools use, so it reads the same on the canvas, and it goes through the document service so a write is serialised behind that service's lock rather than raced.
How it works at run time
match_column equals match_value under normalize.set_column on it, creating the column if the sheet does not have it yet.What you wire
Configuration
| Key | Type | Default & options | What it does |
|---|---|---|---|
| document_id * | string | choices from distribution:spreadsheets | The spreadsheet to use, from the files uploaded in the Documents tab. Only .xlsx/.xlsm/.xls/.csv documents appear here. |
| sheet_name | string | — | Which tab inside the workbook. Leave blank to use the first one. Matched case-insensitively. |
| header_row | number | default 1 | Which row holds the column headings, counting from 1 as shown in Excel. Leave at 1 for a plain sheet. Exported reports often have a title block first — set this to the row where the real headings start. |
| match_column * | string | — | Column that identifies the row, e.g. 'phone'. Use the lowercase underscored form of the heading — 'Phone Number' is 'phone_number'. |
| match_value | string | — | Value to find. Supports {{key}}, e.g. '{{phone}}' for whoever is messaging. A wired `match_value` input wins over this. |
| set_column * | string | — | Column to write into, e.g. 'status'. Created if absent. |
| set_value | string | — | Value to write. Supports {{key}}. A wired `set_value` input wins over this. |
| normalize | string | default "exact" exact · lower · phone10 | How to compare the key. Use phone10 for phone numbers — it compares the last 10 digits, so '919361659515' matches '+91 93616 59515'. Without it, formatting differences never match. |
What usually goes wrong
Watch for this
Use phone10 when matching on a phone number. Without it, formatting differences never match and the write silently lands nowhere.
Behaviour & provenance