Free Intro Class
    Botspot Logo

    agenthub · sheet.write

    Update Spreadsheet Row

    Write one value into an uploaded spreadsheet: find the row whose key column matches, and set another column on it.

    category Datain match_value · set_valueout ok · data · errorexecution asyncmodel cost none

    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

    1. 1
      Find the row whose match_column equals match_value under normalize.
    2. 2
      Set set_column on it, creating the column if the sheet does not have it yet.
    3. 3
      The whole grid is read, modified and written back, under a lock.

    What you wire

    Inputs

    • match_value
      any
    • set_value
      any

    Outputs

    • ok
      boolean
    • data
      object
    • error
      object

    Configuration

    KeyTypeDefault & optionsWhat it does
    document_id *stringchoices from distribution:spreadsheetsThe spreadsheet to use, from the files uploaded in the Documents tab. Only .xlsx/.xlsm/.xls/.csv documents appear here.
    sheet_namestringWhich tab inside the workbook. Leave blank to use the first one. Matched case-insensitively.
    header_rownumberdefault 1Which 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 *stringColumn that identifies the row, e.g. 'phone'. Use the lowercase underscored form of the heading — 'Phone Number' is 'phone_number'.
    match_valuestringValue to find. Supports {{key}}, e.g. '{{phone}}' for whoever is messaging. A wired `match_value` input wins over this.
    set_column *stringColumn to write into, e.g. 'status'. Created if absent.
    set_valuestringValue to write. Supports {{key}}. A wired `set_value` input wins over this.
    normalizestringdefault "exact" exact · lower · phone10How 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

    buildersChat & voice agents, Image workflows, Video workflows, Automations
    routesno
    side effectsexternal_write
    replay safetynatural
    talks todocuments & data sources
    holdsworkspace runtime token, the caller's own identity