Data

This module offers a suite of configurable workflow nodes designed to simplify data automation within Odoo. These nodes handle common data operations such as reading, transforming, validating, and writing records, reducing the need for custom code.

Dependencies

This module depends on the following modules *:

  • n2
  • n2_ui

*Built-in modules not listed

Python Requirement

This module requires the following Python package:

  • pandas

ActiveDataNode

Retrieves the current recordset provided by record-related triggers. Use this node when subsequent workflow steps depend on the record that initiated the automation.

Parameters

  • key Raw
  • selected_fields Raw

The key is used as key of the result dict of the node.

ArchiveDataNode

Represents the action_archive method of Odoo models. This node is used to archive records from the database as part of an automated process.

Parameters

  • ids Eval
  • model Raw

The ids is evaluated to search and archive recordset of the related model.

BrowseDataNode

Acts as a bridge to fetch records from the database, representing the browse method in Odoo models. Used in combination with DataGroupNode or DataNode to define precisely what data should be examined.

Parameters

  • model Raw
  • reference_field Raw
  • reference_values Eval

The reference_field and reference_values are used as domain filter to browse model

CreateDataNode

Represents the create method of Odoo models. Use this node to generate new records based on workflow inputs or results from other nodes.

Parameters

  • model Raw
  • fields Raw Eval

The field['value'] is evaluated with current context, active record and lookup function of the connected LookupNode while field['name'] is used as is to create recordset of the model.

DataGroupNode

Retrieves grouped data (e.g., aggregated or structured recordsets). Paired with BrowseDataNode to define grouping logic when collecting related records.

Parameters

  • key Raw
  • model Raw
  • selected_fields Raw
  • aggregate_function Raw
  • group_field Raw
  • datetime_granularity Raw
  • output_type Raw

DataNode

Retrieves data or recordsets. When combined with BrowseDataNode, it is used to fetch specific fields or related model data.

Parameters

  • key Raw
  • model Raw
  • selected_fields Raw

The selected_fields are used to determine the values to be returned when querying the model. The key is used as the key of the result dict.

DomainFilterNode

Adds domain filters to data retrieval operations. Ideal for narrowing recordsets when using DataGroupNode or DataNode, enabling queries such as “open invoices only” or “records created this year.”

Parameters

  • model Raw
  • domain LitEval

domain is used as additional domain filter for the model.

DynamicDateFilterNode

Provides dynamic, date-driven filtering—for example, retrieving records from the current week, month, or year. Useful in reports, KPIs, or scheduled workflows that operate relative to the current date.

Parameters

  • model Raw
  • dynamic_date_field Raw
  • dynamic_date_interval Raw

dynamic_date_interval and dynamic_date_field is used to create additional domain filter for the model.

domain = (<dynamic_date_field> >= start_of(now, <dynamic_date_interval>)) and (<dynamic_date_field> <= end_of(now, <dynamic_date_interval>))

LookupNode

Supplies lookup data during record creation or modification.

Parameters

  • key Raw
  • model Raw
  • lookup_field Raw
  • value_field Raw

The lookup_field is used to create lookup function of the model. The value of the value_field is returned when calling the lookup function.

The key is as the key to access the lookup function.

Expression to use the lookup function:

lookup[<key>](<lookup_value>)

This expression creates a domain used to find the related recordset:

<lookup_field> = <lookup_value>

The lookup function returns the value of the value_field if exists, otherwise the lookup function returns None

UpdateActiveDataNode

Updates the current recordset provided by record-triggered workflows.

Parameters

  • fields Raw Eval

fields is a dictionary:

{
    `value`: str,
    `name`: str
}

The field['value'] is evaluated with current context and active record while field['name'] is used as is to update the active record of the active_model in the current context.

UpdateDataNode

Represents the write method of Odoo models.

Parameters

  • ids Eval
  • model Raw
  • fields Raw Eval

fields is a dictionary:

{
    `value`: str,
    `name`: str
}

The field['value'] is evaluated with current context, active record and lookup function of the connected LookupNode while field['name'] is used as is to update the record of the model.