{ "kind": "open-flow-workflow", "version": 1, "name": "Coda Table Row Creator", "content": { "modelVersion": 14, "document": { "bindings": {}, "graph": { "nodes": { "n_07e5b5908e4928ba": { "name": "Add a row", "kind": "start", "inputDefs": [] }, "n_1a7f688f77cdc961": { "inputs": { "docId": { "kind": "value", "value": "YOUR_CODA_DOC_ID" }, "tableIdOrName": { "kind": "value", "value": "YOUR_CODA_TABLE_ID" }, "rows": { "kind": "value", "value": [ { "cells": [ { "column": "Column 1", "value": "This is column 1 data" }, { "column": "Column 2", "value": "This is column 2 data" }, { "column": "Column 3", "value": "This is column 3 data" } ] } ] }, "disableParsing": { "kind": "value", "value": false } }, "name": "Submit Coda row", "kind": "task", "task": { "inputs": [ { "description": "ID of the doc.", "jsonSchema": { "type": "string", "minLength": 1, "description": "ID of the doc." }, "nullable": false, "handle": "docId" }, { "description": "ID or name of the table. Names are discouraged because they are fragile.", "jsonSchema": { "type": "string", "minLength": 1, "description": "ID or name of the table. Names are discouraged because they are fragile." }, "nullable": false, "handle": "tableIdOrName" }, { "description": "Whether Coda should skip automatic value parsing.", "jsonSchema": { "type": "boolean", "description": "Whether Coda should skip automatic value parsing." }, "nullable": true, "handle": "disableParsing", "value": null }, { "description": "Column IDs, URLs, or names used as upsert keys.", "jsonSchema": { "type": "array", "items": { "type": "string", "minLength": 1, "description": "An array item." }, "description": "Column IDs, URLs, or names used as upsert keys." }, "nullable": true, "handle": "keyColumns", "value": null }, { "description": "Rows to insert or upsert.", "jsonSchema": { "type": "array", "items": { "type": "object", "properties": { "cells": { "type": "array", "items": { "type": "object", "properties": { "column": { "type": "string", "minLength": 1, "description": "Column ID, URL, or name associated with this edit." }, "value": { "description": "Value to write to the cell." } }, "required": [ "column", "value" ], "additionalProperties": false, "description": "Cell edit payload." }, "minItems": 1, "description": "Cells to write for the target row." } }, "required": [ "cells" ], "additionalProperties": false, "description": "Row edit payload." }, "minItems": 1, "description": "Rows to insert or upsert." }, "nullable": false, "handle": "rows" } ], "outputs": [ { "description": "Request ID for the asynchronous row upsert.", "jsonSchema": { "type": "string", "description": "Request ID for the asynchronous row upsert." }, "nullable": false, "handle": "requestId" }, { "description": "Row IDs that will be added when Coda can determine them upfront.", "jsonSchema": { "type": "array", "items": { "type": "string", "description": "An array item." }, "description": "Row IDs that will be added when Coda can determine them upfront." }, "nullable": true, "handle": "addedRowIds" } ], "name": "Submit Coda row", "executor": { "kind": "connector", "action": "coda.upsert_rows" } } }, "n_b8df78a6d0aaa81f": { "name": "Accepted row request", "kind": "outputs", "outputDefs": [ { "jsonSchema": { "type": "string", "description": "Request ID for the asynchronous row upsert." }, "nullable": false, "handle": "requestId" }, { "jsonSchema": { "type": "array", "items": { "type": "string", "description": "An array item." }, "description": "Row IDs that will be added when Coda can determine them upfront." }, "nullable": true, "handle": "addedRowIds" } ], "outputMappings": { "requestId": { "kind": "sources", "sources": [ { "kind": "node", "nodeId": "n_1a7f688f77cdc961", "output": "requestId" } ] }, "addedRowIds": { "kind": "sources", "sources": [ { "kind": "node", "nodeId": "n_1a7f688f77cdc961", "output": "addedRowIds" } ] } } } }, "edges": [ { "source": "n_07e5b5908e4928ba", "target": "n_1a7f688f77cdc961" }, { "source": "n_1a7f688f77cdc961", "target": "n_b8df78a6d0aaa81f" } ] } }, "modules": {} }, "presentation": { "designer": { "version": 1, "flow": { "direction": "vertical" } } } }