Skip to main content
Change some cells of one record, and/or archive or restore it. Returns the record and the changes made. Only the fields listed change. Get the ids, the type each value takes and editable from get_data_table, the current values from list_data_table_records. Pass at least one of values or archived. On a record synced from an integration, the edit is kept as an overwrite with the synced value kept beside it, as in the web app, and a later sync keeps your edit. Statements are not recalculated by this call, just as when a record is edited in the web app. To refresh them, call recalculate_statements on the users and the period the record counts for. Without full write access to data tables, write through a view of the table shared with you with edit rights, passed as view_id: only a record the view’s filter holds can be changed. Requires write permission on data tables, or a view shared with edit rights. Every write is recorded in the audit trail as the Qobra MCP agent.

Parameters

Body

string
required
Id of the data table holding the record, from list_data_tables.
string
required
Id of the record, from list_data_table_records.
object[]
The cells to change, one per field; a field left out keeps its value. Omit to change only archived.
boolean
true archives the record, false restores it. Omit to leave it as it is.
string
One of the table’s adjustment_reasons (get_data_table): required when that list is not null, refused when it is null (use comment for a free-text note).
string
Free-text note kept in the record’s history.
string
Id of one of the table’s views, to write through. Required when your write access comes from shared views (only records its filter holds can be written); omit it with full write access.
The call is refused, with a message naming the problem, when no data table has the data_table_id, when no record of that table has the record_id (or none the view_id’s filter holds), when neither values nor archived is passed, when a field_id is unknown or listed twice, when a field is a lookup, when a value does not match its field’s type or picklist options — or, for a link, is not the id of a record of the linked table — when the name field is set to an empty or null value, when an amount’s currency is neither the company currency nor one list_exchange_rates lists, when the table requires a reason and none from its adjustment_reasons was passed, or when a reason is passed but the table takes none. A cell sent without a currency is never refused for its currency. To write an amount in a new currency, give that currency an exchange rate with update_exchange_rates first.

Example

To archive a record without changing its values, pass only archived:

Response

Body

object
The table of the record; its fields name the record’s values in order.
object
object[]
What this call changed, the archived state included (as ‘Active record’). Empty when nothing changed: nothing was written.