Skip to main content
Create an empty report, or duplicate an existing one, and return it as list_reports lists it. What the tool does depends on what you pass:
  • To duplicate a report, pass name and source_report_id. Optionally pass description and section_id to replace the source’s. Pass nothing else: the copy lands in the environment the source lives in, so it takes no sandbox_id.
  • To create a report from scratch, pass name and report_type, plus tracked_data_table_id for a record report. Optionally pass description, section_id and sandbox_id. A record report needs record reporting enabled for the company.
A duplicate is the same as one made from the web app. It keeps the source’s report type, source data table, fields, filters, sorts, aggregates, pivot table and chart. Who the source is shared with is not copied. Duplicate a report to start from one that already works, for example for another region or another period, rather than rebuild it. A report created from scratch has only its base and dimension columns and a Count under its name column: no metric, no data table field, no pivot table or chart. This tool cannot add them. Ask the Analyst (ask_analyst) to fill in the report it just created, or do it from the Qobra web app. A record report tracks the rows of one data table, named through tracked_data_table_id; a statement report tracks payout statements and takes no data table. A record report lists only the records of scopes on which a plan flags a record metric (see get_report_data). Use the returned id directly: list_reports may not show it yet. Every write to the live environment is recorded in the audit trail as the Qobra MCP agent; writes to a sandbox are not audited.

Example

To copy the “Q3 pipeline” report for the EMEA team, pass the id of the source report, as list_reports returns it, and the name of the copy:

Parameters

Body

string
required
Name of the new report, or of the copy.
string
To duplicate a report you can read: its id from list_reports. Pass it with name and, optionally, description and section_id, nothing else. Omit it to create an empty report.
string
Free-text note about what the report is for. With source_report_id it replaces the source’s description; omit it, or pass an empty one, to keep the source’s.
string
Only to create from scratch, where it is required; refused with source_report_id. ‘statement’ (payout statements) or ‘record’ (the rows of the data table tracked_data_table_id, then required). One of: statement, record.
string
Only to create a record report from scratch, where it is required; refused otherwise. Id from list_data_tables.
string
Id of the section to file the report under: the section.section_id of a report in list_reports, from the environment the report lands in; never a name. Omit it to leave a new report unfiled, or a copy in its source’s section.
string
Id of a sandbox from list_sandboxes, to create this in instead of the live environment. Omit it to create in live, the company’s real data. Never a name, never the live id.

Response

Body

object
The report as it now exists, as list_reports lists it.