> ## Documentation Index
> Fetch the complete documentation index at: https://agents.concierca.ch/llms.txt
> Use this file to discover all available pages before exploring further.

# Row Write Tools

> The per-table insert_<table> / update_<table> grants — the granular write surface behind data_row_create / data_row_update.

Generic row writes go through `data_row_create`, `data_row_save` and `data_row_update` (see [Data](/for-agents/data)). But each writable catalog table is gated by its **own** grant: `insert_<table>` to create a row, `update_<table>` to modify one. A key holds only the table grants it was given — so two Company-Admin keys can differ in exactly which tables they may write.

Common rules (identical to the generic tools):

* `tenant_id`, `workspace_id` and any owner column (`submitted_by_user_id` / `owner_user_id` / `user_id`) are **stamped server-side** from your credential — never pass them.
* Only the table's **registered creatable columns** are accepted; identity/ownership columns are stripped or protected.
* Without the matching `insert_<table>` / `update_<table>` grant the call is rejected.

## The writable tables

| Tool                          | Table                                                           | What it writes                       | Grant needed                  |
| ----------------------------- | --------------------------------------------------------------- | ------------------------------------ | ----------------------------- |
| `insert_orders`               | [Orders](/for-agents/data-model/orders)                         | Create a row in Orders               | `insert_orders`               |
| `update_orders`               | [Orders](/for-agents/data-model/orders)                         | Update a row in Orders               | `update_orders`               |
| `insert_products`             | [Products](/for-agents/data-model/products)                     | Create a row in Products             | `insert_products`             |
| `update_products`             | [Products](/for-agents/data-model/products)                     | Update a row in Products             | `update_products`             |
| `insert_purchase_order_lines` | [Purchase Order Lines](/for-agents/data-model/purchase-orders)  | Create a row in Purchase Order Lines | `insert_purchase_order_lines` |
| `update_purchase_order_lines` | [Purchase Order Lines](/for-agents/data-model/purchase-orders)  | Update a row in Purchase Order Lines | `update_purchase_order_lines` |
| `insert_customers`            | [Customers](/for-agents/data-model/customers)                   | Create a row in Customers            | `insert_customers`            |
| `update_customers`            | [Customers](/for-agents/data-model/customers)                   | Update a row in Customers            | `update_customers`            |
| `insert_decisions`            | [Decisions](/for-agents/data-model/decisions)                   | Create a row in Decisions            | `insert_decisions`            |
| `update_decisions`            | [Decisions](/for-agents/data-model/decisions)                   | Update a row in Decisions            | `update_decisions`            |
| `insert_order_line_items`     | [Order Line Items](/for-agents/data-model/order-line-items)     | Create a row in Order Line Items     | `insert_order_line_items`     |
| `update_order_line_items`     | [Order Line Items](/for-agents/data-model/order-line-items)     | Update a row in Order Line Items     | `update_order_line_items`     |
| `insert_procurement_config`   | [Procurement Config](/for-agents/data-model/procurement-config) | Create a row in Procurement Config   | `insert_procurement_config`   |
| `update_procurement_config`   | [Procurement Config](/for-agents/data-model/procurement-config) | Update a row in Procurement Config   | `update_procurement_config`   |
| `insert_suppliers`            | [Suppliers](/for-agents/data-model/suppliers)                   | Create a row in Suppliers            | `insert_suppliers`            |
| `update_suppliers`            | [Suppliers](/for-agents/data-model/suppliers)                   | Update a row in Suppliers            | `update_suppliers`            |
| `insert_decision_log`         | Decision Log                                                    | Create a row in Decision Log         | `insert_decision_log`         |
| `update_decision_log`         | Decision Log                                                    | Update a row in Decision Log         | `update_decision_log`         |
| `insert_agent_runs`           | Agent Runs                                                      | Create a row in Agent Runs           | `insert_agent_runs`           |
| `update_agent_runs`           | Agent Runs                                                      | Update a row in Agent Runs           | `update_agent_runs`           |
| `insert_inbox_agents`         | Agent Inbox                                                     | Create a row in Agent Inbox          | `insert_inbox_agents`         |
| `update_inbox_agents`         | Agent Inbox                                                     | Update a row in Agent Inbox          | `update_inbox_agents`         |
| `insert_agents`               | Agents                                                          | Create a row in Agents               | `insert_agents`               |
| `update_agents`               | Agents                                                          | Update a row in Agents               | `update_agents`               |
| `insert_knowledge_base`       | Knowledge Base                                                  | Create a row in Knowledge Base       | `insert_knowledge_base`       |
| `update_knowledge_base`       | Knowledge Base                                                  | Update a row in Knowledge Base       | `update_knowledge_base`       |
| `insert_meeting_notes`        | [Meeting Notes](/for-agents/data-model/meeting-notes)           | Create a row in Meeting Notes        | `insert_meeting_notes`        |
| `update_meeting_notes`        | [Meeting Notes](/for-agents/data-model/meeting-notes)           | Update a row in Meeting Notes        | `update_meeting_notes`        |

<Note>
  Upsert on `data_row_save` keys on `external_id` (on **products**, the identity key is `identity_key`); see the [Ingest API](/for-agents/ingest) for the ingest counterpart. A **Company-Admin** OAuth connect grants all table writes; a **Member** connect grants none by default.
</Note>
