---
title: entities.report
description: Read report records with the report repository, and change them with the report mutations. Same records as the REST Reports entity.
canonical: https://developers.coevera.com/reference/graphql/report/
section: graphql
verification: schema
generatedFrom: schema f155746 (2026-10-20)
publisher: Coevera
---

# entities.report

Read report records with the report repository, and change them with the report mutations. Same records as the REST Reports entity.

REST: [Reports](https://developers.coevera.com/reference/rest/reports.md).

## Queries

- `getById(entityId: ID!): ReportEntity` Returns the record with the given id, or null when there is none. Deleted records are returned as well.
- `getByIds(entityIds: [ID!]!): [ReportEntity!]!` Returns the records with the given ids; ids without a record are left out. Deleted records are returned as well.
- `getAll(limit: Int, offset: Int, filter: ReportFilterInput, orderBy: [ReportOrderByInput!], includeDeleted: Boolean): [ReportEntity!]!` Returns the records that match the filter, paged with limit and offset.
- `getByCriteria(filter: ReportFilterInput, orderBy: [ReportOrderByInput!], includeDeleted: Boolean, before: String, after: String, first: Int, last: Int): ReportEntityConnection` Returns the records that match the filter as a cursor-paginated connection.
- `getChangedFieldsSinceRevision(id: UUID!, revision: Int!): [UUID!]!` Returns the ids of the fields of a record that changed after the given revision. Returns an empty list for entities without change tracking.

## Mutations

- `changeOwnershipReport(input: ChangeOwnershipReportInput!): ChangeOwnershipReportPayload` Change owner. GraphQL only.
- `setScheduleReport(input: SetScheduleReportInput!): SetScheduleReportPayload` Sets up or replaces the calling user's scheduled email delivery of the report. Schedules are personal: each user has their own schedule on a report. GraphQL only.
- `removeScheduleReport(input: RemoveScheduleReportInput!): RemoveScheduleReportPayload` Removes the calling user's scheduled email delivery of the report, so no further emails are sent. Does nothing when no schedule is set. GraphQL only.

## Types

### ReportEntity (object)

Saved report or dashboard with its settings, sharing and delivery schedule.

- `isDeleteProtected: Boolean!` True when the record is protected against deletion because it must always exist in the space. Deleting a record that is not protected can still fail on other checks. Read-only.
- `id: ID!` Unique identifier of entity.
- `isDeleted: Boolean` Specifies if the entity is considered deleted.
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `owner: ClientEntity` User who owns the report or dashboard.
- `reportsFolder: ReportFolderEntity` Report folder this report is filed under (default folder when empty).
- `syncEntity: ProfileEntity` Specific record this report is synchronized to. Set only when syncEnabled is true.
- `accessLink: String` Public access token used in shareable report URLs. Empty when public sharing is not configured for the report.
- `aiConversation: [AiConversationItem!]` AI assistant conversation associated with the report (e.g. records of AI-driven report generation).
- `description: String` Free-text description shown alongside the report.
- `name: String!` Name of the entity and its default text representation.
- `ownerId: ID!` Id of the owning user.
- `reportsFolderId: ID!` Id of the parent report folder.
- `settings: ReportSettings!` Report definition (entity, columns, filters, charts, structure). Stored as a JSON document. This payload conforms to the `ReportSettings` JSON Schema: GET /api/v100/rest/schemas/ReportSettings.json on your region's API host
- `shareMode: ShareModeEnum` Who besides the owner can access the report: nobody (Private, the default), the users and sales units in sharingClients and sharingUnits (Standard), or all users (AllView to view, AllEdit to also edit).
- `shareModeParams: Int` Legacy additional sharing options; kept with the record but no longer applied.
- `syncEnabled: Boolean` When true, name and settings are kept in sync with the linked screen profile; when false, the report is detached from profile sync.
- `syncEntityId: ID` Id of the synchronized record.
- `type: ReportTypeEnum!` Kind of report: a table or pivot report, a dashboard, an opportunity forecast, or an advanced report built from several linked tables.
- `revision: Int` Revision when entity was lastly changed.
- `schedule: ReportScheduleEntity` The calling user's scheduled email delivery of this report; empty when none is set. Set it with `setScheduleReport` and remove it with `removeScheduleReport`.
- `isFavorite: Boolean!` True when the current user has marked this report as a favorite (see ClientFavorite).
- `sharingUnits: ReportSharingSalesUnitRelationEntityConnection (8 args)` Sales units granted shared access to this report (custom share mode).
- `sharingClients: ReportSharingClientRelationEntityConnection (8 args)` Users granted shared access to this report (custom share mode).
- `instancePermissions: [EntityPermsEnum!]! (1 args)` Permissions the current user has on this record, out of the requested ones.

### ReportEntityConnection (object)

Paginated list of Report records.

- `pageInfo: PageInfo!` Pagination data for this connection.
- `edges: [ReportEntityEdge]!` Contains the nodes in this connection.
- `totalCount: Int` Total number of items in the connection.

### ReportEntityEdge (object)

A Relay edge containing a `ReportEntity` and its cursor.

- `node: ReportEntity` The item at the end of the edge
- `cursor: String!` A cursor for use in pagination

### ReportFilterInput (input)

Filter conditions for Report records. Conditions on different fields are combined with AND; use OR, AND and NOT for other combinations.

- `OR: [ReportFilterInput!]` Matches records that meet at least one of the listed filters.
- `AND: [ReportFilterInput!]` Matches records that meet all of the listed filters.
- `NOT: ReportFilterInput` Matches records that do not meet this filter.
- `globalSearchQuery: String` Search term matched against the fields that the global search covers for this entity.
- `id: EntityFilterStringField` Unique identifier of entity.
- `isDeleted: Boolean` Specifies if the entity is considered deleted.
- `modified: EntityFilterDateTimeField` Last modification time.
- `created: EntityFilterDateTimeField` Creation time.
- `accessLink: EntityFilterStringField` Public access token used in shareable report URLs. Empty when public sharing is not configured for the report.
- `description: EntityFilterStringField` Free-text description shown alongside the report.
- `name: EntityFilterStringField` Name of the entity and its default text representation.
- `ownerId: EntityFilterStringField` Id of the owning user.
- `reportsFolderId: EntityFilterStringField` Id of the parent report folder.
- `shareMode: ShareModeEnumFilterInput` Who besides the owner can access the report: nobody (Private, the default), the users and sales units in sharingClients and sharingUnits (Standard), or all users (AllView to view, AllEdit to also edit).
- `shareModeParams: ShareModeParamsEnumFilterInput` Legacy additional sharing options; kept with the record but no longer applied.
- `syncEnabled: Boolean` When true, name and settings are kept in sync with the linked screen profile; when false, the report is detached from profile sync.
- `syncEntityId: EntityFilterStringField` Id of the synchronized record.
- `type: ReportTypeEnumFilterInput` Kind of report: a table or pivot report, a dashboard, an opportunity forecast, or an advanced report built from several linked tables.
- `revision: EntityFilterNumberField` Revision when entity was lastly changed.
- `owner: ClientFilterInput` User who owns the report or dashboard. Matches records where a related record meets these conditions.
- `reportsFolder: ReportFolderFilterInput` Report folder this report is filed under (default folder when empty). Matches records where a related record meets these conditions.
- `syncEntity: ProfileFilterInput` Specific record this report is synchronized to. Set only when syncEnabled is true. Matches records where a related record meets these conditions.
- `schedule: ReportScheduleFilterInput` The calling user's scheduled email delivery of this report; empty when none is set. Set it with `setScheduleReport` and remove it with `removeScheduleReport`. Matches records where a related record meets these conditions.
- `sharingUnits: ReportSharingSalesUnitRelationFilterInput` Sales units granted shared access to this report (custom share mode). Matches records where a related record meets these conditions.
- `sharingClients: ReportSharingClientRelationFilterInput` Users granted shared access to this report (custom share mode). Matches records where a related record meets these conditions.

### ReportOrderByInput (input)

Sorting of Report records. Set exactly one field in each item; list several items to sort by more fields, in order of priority.

- `id: OrderByEnum` Unique identifier of entity.
- `isDeleted: OrderByEnum` Specifies if the entity is considered deleted.
- `modified: OrderByEnum` Last modification time.
- `created: OrderByEnum` Creation time.
- `owner: [ClientOrderByNestedInput!]` User who owns the report or dashboard. Sorts by fields of the related record, listed in order of priority.
- `reportsFolder: [ReportFolderOrderByNestedInput!]` Report folder this report is filed under (default folder when empty). Sorts by fields of the related record, listed in order of priority.
- `syncEntity: [ProfileOrderByNestedInput!]` Specific record this report is synchronized to. Set only when syncEnabled is true. Sorts by fields of the related record, listed in order of priority.
- `accessLink: OrderByEnum` Public access token used in shareable report URLs. Empty when public sharing is not configured for the report.
- `description: OrderByEnum` Free-text description shown alongside the report.
- `name: OrderByEnum` Name of the entity and its default text representation.
- `ownerId: OrderByEnum` Id of the owning user.
- `reportsFolderId: OrderByEnum` Id of the parent report folder.
- `shareMode: OrderByEnum` Who besides the owner can access the report: nobody (Private, the default), the users and sales units in sharingClients and sharingUnits (Standard), or all users (AllView to view, AllEdit to also edit).
- `syncEnabled: OrderByEnum` When true, name and settings are kept in sync with the linked screen profile; when false, the report is detached from profile sync.
- `syncEntityId: OrderByEnum` Id of the synchronized record.
- `type: OrderByEnum` Kind of report: a table or pivot report, a dashboard, an opportunity forecast, or an advanced report built from several linked tables.
- `revision: OrderByEnum` Revision when entity was lastly changed.
- `schedule: [ReportScheduleOrderByNestedInput!]` The calling user's scheduled email delivery of this report; empty when none is set. Set it with `setScheduleReport` and remove it with `removeScheduleReport`. Sorts by fields of the related record, listed in order of priority.

### ReportTypeEnumFilterInput (input)

Conditions on an enumeration field. Several conditions given together must all match.

- `eq: [ReportTypeEnum!]` Matches any of the listed values.
- `NOT: ReportTypeEnumFilterInput` Matches values that do not meet this condition.

### ChangeOwnershipReportInput (input)

Parameters of the changeOwnershipReport mutation.

- `ownerId: ID!` User who becomes the new owner of the report.
- `keepOwnerAsWatcher: Boolean!` When true, the previous owner (if still an active user) keeps the report shared with the Watcher role, and a Private sharing mode is switched to Standard.
- `copyScheduledReport: Boolean!` When true, the calling user's own delivery schedule of this report is copied to the new owner, replacing any schedule the new owner already has on it.
- `id: ID!` Identifier of the ReportEntity to perform the action on.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### CsvOptionsParams (input)

Options of a scheduled report attached to its email as a CSV file.

- `includeForeignCurrency: Boolean` When true, monetary values are also rendered in each record's foreign currency alongside the base-currency amounts.
- `delimiter: CsvDelimiter` Character separating fields in the generated CSV: comma, semicolon, tab or colon.
- `quotechar: CsvQuotechar` Character used to quote field values that contain the delimiter: double quotation mark or apostrophe.
- `encoding: String` Character encoding of the generated CSV file (e.g. "UTF-8").

### EmailFollowUpTaskParams (input)

Follow-up task created each time a scheduled report email is sent.

- `taskTypeId: ID!` Activity type assigned to the follow-up task created when the report email is sent.
- `dueDateOffset: Int` Number of business days after the report email is sent that the follow-up task is due (0 = the sending day). Either this or `dueDate` must be set, but not both.
- `dueDate: Date` Explicit due date for the follow-up task. Either this or `dueDateOffset` must be set, but not both.

### PdfOptionsParams (input)

Options of a scheduled report attached to its email as a PDF file.

- `pageWidth: Float!` Width of the PDF page, in inches.
- `pageHeight: Float!` Height of the PDF page, in inches.
- `landscape: Boolean!` When true, the PDF is laid out in landscape orientation; otherwise portrait.
- `scale: Float!` Scaling factor applied when rendering the report into the PDF, where 1.0 is full size.
- `pageNumbers: Boolean!` When true, page numbers are printed on the generated PDF.
- `content: ReportContent!` Which parts of the report to include in the PDF: All content, only Charts, or only the Table.

### RemoveScheduleReportInput (input)

Parameters of the removeScheduleReport mutation.

- `id: ID!` Identifier of the ReportEntity to perform the action on.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### ReportScheduleParams (input)

When a scheduled report runs: once at a given date and time, or repeatedly at a time of day on chosen days.

- `date: DateTime` Date and time the schedule runs once. Set for a one-time schedule; left empty for recurring schedules that use the time-of-day and day fields instead.
- `timeOfDay: Int` Time of day a recurring schedule runs, in minutes after midnight (0 to 1439).
- `dayOfWeek: [Int!]` Weekdays a weekly schedule runs on, from 1 (Monday) to 7 (Sunday).
- `dayOfMonth: [Int!]` Days of the month a monthly schedule runs on, from 1 to 31.

### ReportScheduleSchemaParams (input)

Settings of a scheduled report: when it runs, the email it sends and an optional follow-up task.

- `schedule: ReportScheduleParams!` Recurrence defining when the report is generated and emailed.
- `email: ScheduledReportEmailParams!` Email delivered on each run: recipients, sending account, content and report attachment options.
- `followUp: EmailFollowUpTaskParams` Optional follow-up task created each time the report email is sent.
- `timezone: String` IANA timezone name used to interpret the schedule times (e.g. "Europe/Bratislava").
- `skipEmpty: Boolean!` When true, the scheduled email is not sent on runs where the report contains no data.
- `workingDaysOnly: Boolean` When true, scheduled runs that fall on a weekend are skipped.

### ScheduledReportEmailAttachmentParams (input)

Report file attached to a scheduled report email: its format, and whether it is zipped and password-protected.

- `formatCsv: CsvOptionsParams` Render the attached report as a CSV file with these options. Exactly one of the format fields may be set.
- `formatXlsx: XlsxOptionsParams` Render the attached report as an XLSX file with these options. Exactly one of the format fields may be set.
- `formatHtml: Boolean` When true, attach the report as HTML. Exactly one of the format fields may be set.
- `formatPdf: PdfOptionsParams` Render the attached report as a PDF with these options. Exactly one of the format fields may be set.
- `compress: Boolean` When true, the report attachment is delivered as a compressed ZIP archive.
- `password: String` Password protecting the compressed attachment. Can only be set when `compress` is enabled.
- `isPasswordEncrypted: Boolean` True when the stored `password` value is already encrypted rather than plain text.

### ScheduledReportEmailParams (input)

Email that delivers a scheduled report: recipients, sending account, content and the attached report file.

- `recipients: [SendEmailRecipientParams!]!` Primary recipients of the email. Addresses may contain personalization tags resolved from the triggered record.
- `cc: [SendEmailRecipientParams!]!` Carbon-copy recipients of the email. Addresses may contain personalization tags resolved from the triggered record.
- `bcc: [SendEmailRecipientParams!]!` Blind carbon-copy recipients of the email. Addresses may contain personalization tags resolved from the triggered record.
- `subject: String!` Subject line of the email. May contain personalization tags resolved from the triggered record.
- `body: String!` HTML body of the email. May contain personalization tags resolved from the triggered record.
- `emailTemplateId: UUID` Email template to use for the message. When set, the template supplies the subject and body.
- `attachments: [UUID!]!` Stored files attached to the email.
- `signature: String` Signature appended to the email body.
- `linkRecipients: Boolean` When true, the sent report email is linked to its recipient records (accounts/contacts) so it appears in their activity feed.
- `service: SendEmailServiceParams!` Email account used to send the report, described as a `SendEmailService` (personal, company, or client personal account).
- `personalAccount: EmailServiceTypeEnum` Legacy sending-provider selector (O365, Google, or SendGrid) kept for report settings created before per-account sending was introduced. Prefer `service`.
- `reportAttachment: ScheduledReportEmailAttachmentParams` Settings for the report file attached to the email (format and compression). When omitted, the email must instead include the report download link in its subject or body.

### SendEmailServiceParams (input)

Email account an email is sent from: the sender's own account, a shared company account or, for a mass email, a client personal email account.

- `personalAccountId: UUID` Identifier of the sender's own connected email account to send from. Exactly one of the account fields may be set.
- `companyAccountId: UUID` Identifier of a shared company email account to send from. Exactly one of the account fields may be set.
- `clientPersonalEmailAccountId: UUID` Identifier of a client personal email account to send from. Valid only for mass email. Exactly one of the account fields may be set.

### SetScheduleReportInput (input)

Parameters of the setScheduleReport mutation.

- `settings: ReportScheduleSchemaParams!` Delivery schedule conforming to the ReportScheduleSchema type, with the recurrence in schedule, the email to send in email (recipients, sending account, body and report attachment) and an optional follow-up task in followUp. Validated on write, including that the sending email account is available.
- `id: ID!` Identifier of the ReportEntity to perform the action on.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### XlsxOptionsParams (input)

Options of a scheduled report attached to its email as an Excel (XLSX) file.

- `includeForeignCurrency: Boolean` When true, monetary values are also rendered in each record's foreign currency alongside the base-currency amounts.
- `type: ReportXlsxType` Level of detail of the generated XLSX export: a "simplified" layout or the "full" report.

### ChangeOwnershipReportPayload (object)

Result of the changeOwnershipReport mutation.

- `result: ReportEntity` The report with its new owner.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### RemoveScheduleReportPayload (object)

Result of the removeScheduleReport mutation.

- `result: ReportEntity` The report.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### SetScheduleReportPayload (object)

Result of the setScheduleReport mutation.

- `result: ReportEntity` The report with its updated schedule.
- `clientMutationId: String` Optional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).

### AccountDashboardProfileTab (object)

Account tab of a dashboard report, holding the saved account dashboard it shows.

- `id: ID!` Identifier of the dashboard tab.
- `accountDashboardProfile: AccountDashboardProfile` Saved dashboard profile (filter, role and view) shown on this account dashboard tab.

### ActivityDashboardProfileTab (object)

Activity tab of a dashboard report, holding the saved activity dashboard it shows.

- `id: ID!` Identifier of the dashboard tab.
- `activityDashboardProfile: ActivityDashboardProfile` Saved dashboard profile (filter, role and view) shown on this activity dashboard tab.

### AggregationRelation (object)

Relation of a sibling box that aggregates the related records into one value per row, such as their count or sum.

- `aggregationFieldId: ID` Id of the field used to aggregate on each identified groups, set to NULL if aggregation operation is count
- `operationFieldId: ID` Id of the field used to define groups to aggregate, if whole set is used for aggregation
- `aggregationOperator: AggregationOperator!` Operation which defines function used at aggregation

### BetterDashboardSchema (object)

Settings of a configurable dashboard: items such as report charts, KPIs, tiles, targets and record grids laid out on a grid, with a filter and ownership scope applied to every item.

- `items: [DashboardItem!]!` Ordered list of items (tiles) laid out on the dashboard.
- `filter: DashboardFilter!` Dashboard-wide owner and unit filter applied to every item.
- `role: DashboardRole!` Dashboard-wide ownership visibility scope applied to every item.

### ContactDashboardProfileTab (object)

Contact tab of a dashboard report, holding the saved contact dashboard it shows.

- `id: ID!` Identifier of the dashboard tab.
- `contactDashboardProfile: ContactDashboardProfile` Saved dashboard profile (filter, role and view) shown on this contact dashboard tab.

### DashboardAgenda (object)

Dashboard item that lists the upcoming tasks, appointments and opportunities of a chosen period.

- `agendaPeriod: DashboardAgendaPeriodEnum` Time window the agenda covers: the next 7 days, the next 30 days, or a custom number of days set by agendaPeriodCustomDays.
- `agendaPeriodCustomDays: Int!` Number of upcoming days the agenda covers when agendaPeriod is Custom.
- `agendaFilterActivity: FieldFilter` Filter conditions limiting which tasks and appointments appear in the agenda.
- `agendaFilterOpportunity: FieldFilter` Filter conditions limiting which opportunities appear in the agenda.
- `agendaShowTasks: Boolean` When true, tasks are listed in the agenda.
- `agendaShowAppointments: Boolean` When true, appointments are listed in the agenda.
- `agendaShowOpportunities: Boolean` When true, opportunities with activity in the period are listed in the agenda.
- `agendaShowOpportunityFitness: Boolean` When true, the opportunity fitness indicator is shown for listed opportunities.
- `agendaShowOverdueTasks: Boolean` When true, tasks past their due date are also included in the agenda.

### DashboardAgendaPeriodEnum (enum)

Time window covered by a dashboard agenda widget.

- `Upcoming7Days` Today and the next 6 days.
- `Upcoming30Days` Today and the next 29 days.
- `Custom` Today and the following days, for the number of days set by agendaPeriodCustomDays.

### DashboardChart (union)

Content of a configurable dashboard item: one of the supported widgets, such as a report chart, KPI, tile, target, record grid, agenda or quick links.

DashboardReportChart | DashboardPipelineConversionsChart | ReportSchema | ForecastSchema | DashboardQuickLinks | DashboardAgenda | DashboardSection | DashboardTile | DashboardInsights | DashboardTargetTab | DashboardTarget | DashboardOpportunitiesTrend | DashboardGrid | DashboardKpi | DashboardKpiList

### DashboardFilter (object)

Dashboard-wide filter of a configurable dashboard that restricts every item to records of selected owners and sales units.

- `isEnabled: Boolean!` Whether the dashboard-level filter is applied. When false, the owner and unit filters are ignored.
- `ownerIds: [ID!]!` Identifiers of record owners the dashboard is restricted to. An empty list selects no records.
- `unitIds: [ID!]!` Identifiers of units the dashboard is restricted to. An empty list selects no records.

### DashboardGrid (object)

Dashboard item that lists records of a chosen type in a grid with configurable columns, sorting and totals.

- `gridFilter: FieldFilter!` Filter conditions limiting which records are listed in the grid.
- `gridSourceEntity: EntityNameEnum!` Record type listed in the grid (e.g. Opportunity, Lead, Account).
- `gridSourceEntityApiName: String` API name of the source record type when it is a custom entity; null for built-in entities.
- `gridColumns: [GridColumnsOutput!]!` Ordered columns shown in the grid, each identifying a field and its display options.
- `gridSortBy: ID!` Identifier of the field the grid rows are sorted by.
- `gridSortOrder: SortOrder!` Sort direction applied to gridSortBy: Asc or Desc.
- `gridShowTotal: Boolean!` When true, a totals row is shown summarizing the grid columns.
- `gridShowTopRecordsOnly: Boolean!` When true, the grid is limited to the first gridTopRecords rows.
- `gridTopRecords: Int` Maximum number of rows shown when gridShowTopRecordsOnly is true.

### DashboardInsights (object)

Dashboard item that shows a group of insight tiles, each with one aggregated value.

- `insightTiles: [DashboardInsightTile!]!` Ordered list of insight tiles displayed in this insights item.

### DashboardInsightTile (object)

Named tile of an insights dashboard item, showing one aggregated value.

- `id: UUID!` Identifier of the insight tile.
- `name: String!` Label shown above the insight tile.
- `useLang: Boolean!` When true, the name is treated as a localization key and resolved to the viewer language instead of shown verbatim.
- `color: Int` Accent color of the tile, as a packed RGB integer.
- `tile: DashboardTile!` Aggregation definition that produces the value shown on this insight tile.

### DashboardItem (object)

Item placed on a configurable dashboard: its position and size, title, colors and the widget it shows.

- `id: ID!` Identifier of the dashboard item (tile).
- `position: Rectangle!` Position and size of the item on the dashboard grid.
- `chart: DashboardChart!` Content rendered in the item, as one of the DashboardChart variants (KPI, grid, agenda, target, opportunities trend, report chart, and others).
- `name: String` Title shown on the item.
- `nameUseLang: Boolean!` When true, the name is treated as a localization key and resolved to the viewer language instead of shown verbatim.
- `description: String` Optional subtitle or description shown on the item.
- `descriptionUseLang: Boolean!` When true, the description is treated as a localization key and resolved to the viewer language instead of shown verbatim.
- `color: Int` Background color of the item, as a packed RGB integer.
- `headerColor: Int` Header (title bar) color of the item, as a packed RGB integer.

### DashboardKpi (object)

Dashboard KPI item: a predefined or custom metric over a period, measured against a goal and optionally compared with an earlier period.

- `kpiId: UUID!` Identifier of the KPI.
- `kpiTarget: DashboardTargetTab!` Goal definition the KPI value is measured against.
- `kpiFilter: FieldFilter!` Filter conditions limiting which records contribute to the KPI value.
- `kpiIndicator: DashboardKpiIndicatorEnum!` Predefined metric the KPI tracks (e.g. OpportunityWon, LeadCreated, ActivityCompleted); use Custom to define the metric via kpiCustomIndicator.
- `kpiCustomIndicator: DashboardKpiCustomDefinition!` Custom metric definition applied when kpiIndicator is Custom.
- `kpiShowTargetLine: Boolean!` When true, the goal is drawn as a target line on the KPI chart.
- `kpiPeriodCurrent: PeriodOption!` Time range the KPI value is calculated over.
- `kpiPeriodCompare: PeriodCompareOption` Optional earlier period the current value is compared against to show a trend.

### DashboardKpiCustomDefinition (object)

Custom metric of a dashboard KPI: the record type, field and aggregation that produce its value.

- `sourceEntity: EntityNameEnum!` Record type the custom KPI aggregates over (e.g. Opportunity, Lead, Activity).
- `sourceEntityApiName: String` API name of the source record type when it is a custom entity; null for built-in entities.
- `aggregationField: UUID` Identifier of the field aggregated by the KPI; null when the aggregation function is a record count.
- `aggregationLookupFieldId: UUID` Identifier of the lookup relation field to traverse before aggregating, when aggregating a field on a related record.
- `aggregationFunction: AggregationOperator!` Aggregation applied to the source records: Count, Sum, Average, Min, or Max.

### DashboardKpiIndicatorEnum (enum)

Predefined metric a dashboard KPI tracks over the selected period; Custom defines the metric via kpiCustomIndicator.

- `Custom` Metric defined by kpiCustomIndicator (source record type, aggregation function and field).
- `LeadCreated` Number of leads created.
- `LeadQualified` Number of leads qualified into opportunities.
- `LeadLost` Number of leads lost.
- `LeadAverageVelocity` Average number of days from creating a lead to qualifying or losing it.
- `OpportunityCreated` Number of opportunities created directly, not qualified from a lead.
- `OpportunityWon` Number of opportunities won, by closing date.
- `OpportunityLost` Number of opportunities lost, by closing date.
- `OpportunityWonAmount` Total value of opportunities won, in the user's currency.
- `OpportunityLostAmount` Total value of opportunities lost, in the user's currency.
- `OpportunityWinRate` Percentage of closed opportunities that were won.
- `OpportunityAverageVelocity` Average number of days from creating or qualifying an opportunity to winning or losing it.
- `OpportunitySalesVelocity` Number of closed opportunities multiplied by win rate and average won value, divided by the average days to close.
- `OpportunityAverageSize` Average value of won opportunities.
- `ActivityCreated` Number of activities created.
- `ActivityCompleted` Number of activities completed.
- `ActivityEmailsSent` Number of emails sent.

### DashboardKpiList (object)

Dashboard item that shows several KPIs as a list.

- `kpiList: [DashboardKpiListItem!]!` Ordered list of KPIs displayed in this KPI list item.

### DashboardKpiListItem (object)

Named entry of a KPI list dashboard item, holding one KPI definition.

- `id: UUID!` Identifier of the KPI list entry.
- `name: String!` Label shown for this KPI in the list.
- `color: Int` Accent color of the KPI entry, as a packed RGB integer.
- `kpi: DashboardKpi!` KPI definition rendered by this list entry.

### DashboardOpportunitiesTrend (object)

Dashboard item that charts the trend of opportunity values (weighted, unweighted, balanced, won and ranked) over a period against a goal.

- `opportunitiesTrendView: DashboardOpportunitiesTrendView!` Display settings controlling which value series, period, and granularity the trend chart shows.
- `opportunitiesTrendTarget: DashboardTargetTab!` Goal definition drawn as the target line on the trend chart.
- `opportunitiesTrendFilter: FieldFilter!` Filter conditions limiting which opportunities contribute to the trend.

### DashboardOpportunitiesTrendView (object)

Display settings of an opportunities trend dashboard item: the value series plotted, the period and its granularity.

- `showWeightedValue: Boolean!` When true, the chart plots the probability-weighted opportunity value series.
- `showUnweightedValue: Boolean!` When true, the chart plots the raw (unweighted) opportunity value series.
- `showBalancedValue: Boolean!` When true, the chart plots the balanced opportunity value series.
- `showWonValue: Boolean!` When true, the chart plots the won opportunity value series.
- `showRankedValue: Boolean!` When true, the chart plots the ranked opportunity value series.
- `showTargetLine: Boolean!` When true, the goal is drawn as a target line over the value series.
- `period: PeriodOption!` Time range covered by the trend chart.
- `periodGranularity: PeriodGranularity!` Time bucket each data point represents: Day, Week, Month, Quarter, or Year.

### DashboardPipelineConversionsChart (object)

Dashboard item that charts how opportunities convert from step to step of a sales pipeline.

- `name: String!` Display name of the pipeline conversions chart.
- `description: String` Optional free-text description shown alongside the chart.
- `operator: AggregationOperator!` Aggregation applied to the opportunities counted in each pipeline step (Count, Sum, Average, Min, Max).
- `salesPipeline: UUID!` Identifier of the sales pipeline whose step-to-step conversion rates are charted.
- `filter: OpportunityFilterTab` Opportunity filter conditions limiting which opportunities are included in the conversion calculation.

### DashboardQuickLink (object)

Link shown in a quick links dashboard item.

- `id: UUID` Identifier of the quick link. Optional on create; assigned by the server when omitted.
- `url: String!` Target URL opened when the quick link is clicked.
- `name: String!` Label shown for the quick link.
- `useLang: Boolean!` When true, the name is treated as a localization key and resolved to the viewer language instead of shown verbatim.

### DashboardQuickLinks (object)

Dashboard item that shows a list of links to web pages.

- `quickLinks: [DashboardQuickLink!]!` Ordered list of quick links displayed in this dashboard tile.

### DashboardReportChart (object)

Dashboard item that shows the chart of an existing report.

- `reportId: UUID!` Identifier of the report whose chart is rendered in this dashboard item.

### DashboardRole (object)

Dashboard-wide ownership scope of a configurable dashboard: whether own, shared and managing-unit records are included in its items.

- `showMyItems: Boolean!` When true, records owned by the viewer are included.
- `showMySharedItems: Boolean!` When true, records shared with the viewer are included.
- `showManagingUnitItems: Boolean!` When true, records owned by users in the viewer's managed units are included.
- `isEnabled: Boolean!` Whether the role-based visibility scope is applied. When false, records are not restricted by ownership role.

### DashboardSchema (object)

Settings of a dashboard report: its tabs, each showing a saved dashboard for one record type.

- `structure: [DashboardTabItem!]!` Ordered list of dashboard tabs making up the layout, one per record type.

### DashboardSection (object)

Dashboard item used as a section header that separates groups of other items.

- `sectionAlignment: ColumnAlignment!` Horizontal alignment of the section header text: Left, Center, or Right.

### DashboardTabItem (interface)

Tab of a dashboard report; each implementation holds the saved dashboard of one record type (accounts, activities, contacts, leads or opportunities).

- `id: ID!` Identifier of the dashboard tab.

### DashboardTarget (object)

Dashboard item that shows the progress of an aggregated value toward a goal, drawn as a radial, gauge, target or progress bar.

- `targetType: DashboardTargetTypeEnum!` Visual style used to render progress toward the goal: Radial, Gauge, Target, or ProgressBar.
- `target: DashboardTargetTab` Goal definition the actual value is compared against.
- `targetSourceEntity: EntityNameEnum!` Record type whose records are aggregated to produce the actual value (e.g. Opportunity, Lead, Activity).
- `targetSourceEntityApiName: String` API name of the source record type when it is a custom entity; null for built-in entities.
- `targetAggregationField: UUID` Identifier of the field aggregated to produce the actual value; null when the aggregation function is a record count.
- `targetAggregationFunction: AggregationOperator!` Aggregation applied to the source records: Count, Sum, Average, Min, or Max.
- `targetFilter: FieldFilter!` Filter conditions limiting which source records contribute to the actual value.
- `targetAggregationLookupFieldId: UUID` Identifier of the lookup relation field to traverse before aggregating, when aggregating a field on a related record.
- `targetColor: Int` Color of the progress indicator, as a packed RGB integer.

### DashboardTargetTab (object)

Goal a dashboard item is measured against: a saved target or forecast, or a goal value entered on the item.

- `targetDefinition: UUID` Identifier of a saved Target or Forecast supplying the goal; when null, the inline goal value is used instead.
- `goal: Float` Goal value the item measures progress against when no targetDefinition is referenced; may be null when targetDefinition supplies the goal.

### DashboardTargetTypeEnum (enum)

Visual style of a dashboard target widget showing progress toward a goal.

- `Radial` Circular progress ring.
- `Gauge` Semicircular gauge with a needle.
- `Target` Concentric target (bullseye) visual.
- `ProgressBar` Horizontal progress bar.

### DashboardTile (object)

Dashboard tile that shows one aggregated value (count, sum, average, minimum or maximum) of the records of a chosen type.

- `tileId: UUID!` Identifier of the tile.
- `tileSourceEntity: EntityNameEnum!` Record type the tile aggregates over (e.g. Opportunity, Lead, Activity).
- `tileSourceEntityApiName: String` API name of the source record type when it is a custom entity; null for built-in entities.
- `tileAggregationField: UUID` Identifier of the field aggregated by the tile; null when the aggregation function is a record count.
- `tileAggregationFunction: AggregationOperator!` Aggregation applied to the source records: Count, Sum, Average, Min, or Max.
- `tileAggregationLookupFieldId: UUID` Identifier of the lookup relation field to traverse before aggregating, when aggregating a field on a related record.
- `tileChangedRecords: DashboardTileChangedRecords!` Configuration for highlighting records changed within a recent period.
- `tileConditionalFormatting: [DashboardTileConditionalFormatting!]` Ordered color rules applied to the tile value; the first matching rule sets the tile color.
- `tileFilter: FieldFilter!` Filter conditions limiting which source records are aggregated by the tile.

### DashboardTileChangedRecords (object)

Settings of a dashboard tile for highlighting records that changed within a recent period.

- `fieldIds: [UUID!]` Identifiers of the fields whose changes are tracked; a record counts as changed when any of these fields changed within the period.
- `customPeriodValue: Float` Number of days in the look-back window when period is Custom.
- `isEnabled: Boolean` When true, the tile highlights records changed within the period.
- `period: HighlightPeriodEnum` Look-back window for detecting changed records (last 7/14/30 days, last 3/6 months, last year, or Custom days set by customPeriodValue).

### DashboardTileConditionalFormatting (object)

Rule that colors a dashboard tile when its value meets a condition.

- `operator: FieldOperator!` Comparison applied between the tile value and firstValue (and secondValue for range operators such as Between) to decide whether this color applies.
- `firstValue: Float` Threshold compared against the tile value using the operator.
- `secondValue: Float` Upper bound used together with firstValue for range operators such as Between.
- `color: Int!` Color applied to the tile when the condition matches, as a packed RGB integer.

### EntitySubtypeItem (object)

Subtype of records a report box includes, such as tasks or appointments, optionally limited to specific types.

- `kind: EntitySubtypeKind!` Subtype of the box entity to include, such as Task, Appointment, Email, Lead, Opportunity or Quote.
- `formId: [ID!]` Identifiers of the activity or form templates that further restrict which records of this subtype are included.

### EntitySubtypeKind (enum)

Concrete subtype of a combined entity (for example Task or Appointment for activities, Memo or Email for messages, Lead or Opportunity for sales records) that a report, box or rollup is limited to.

- `Task` Tasks among activities.
- `Appointment` Appointments among activities.
- `Memo` Memos (notes) among messages.
- `Email` Emails among messages.
- `Lead` Leads among sales records.
- `Opportunity` Opportunities among sales records.
- `Timeframe` Forecast timeframes.
- `Quote` Quotes.

### FilterSiblingBox (object)

Box of a report that refers to related records only for filtering, without showing columns.

- `id: ID!` Unique identifier of the box within the report structure.
- `calculationFieldId: ID` Id of the opportunity value field the report uses for amount calculations, such as won amounts compared with targets; applied only when the box entity is Opportunity or LeadOppty.
- `entityType: EntityNameEnum!` Entity type whose records this box reports on, such as Account, Lead or Opportunity.
- `entityApiName: String` API name of the entity for this box; set for custom entities to identify which one is used.
- `entitySubtypes: [EntitySubtypeItem!]` List of possible entity subtypes of entityType, if entity type is abstract you can supply with entityTypes of all children of abstract entity
- `lookupFieldId: UUID` Identifier of the lookup field that links this sibling box to its parent box; set when the relation is defined through a specific lookup field.
- `relation: SiblingBoxRelationType` How records in this sibling box relate to the parent box, either an aggregation over related records or a predefined hardcoded relation.

### ForecastSchema (object)

Settings of a forecast report: the forecast tabs it is made of.

- `structure: [ForecastTabItem!]!` Ordered list of forecast items that make up the forecast report tab.

### ForecastTabItem (interface)

Tab of a forecast report; implemented by the opportunity forecast tab.

- `id: ID!` Id of the forecast item within the report tab.

### HardcodedAggregationType (enum)

How values of several related records are combined into one value for a predefined relationship.

- `Sum` Adds up the related values.
- `Average` Averages the related values.
- `Max` Takes the highest related value.

### HardcodedRelation (object)

Predefined relation that selects the related record of a report sibling box, such as the next scheduled activity or the last note.

- `relationType: SiblingRelationType!` Predefined relationship that selects which related record this sibling box pulls in, such as the next scheduled activity, the last won opportunity or the last note.
- `onlyRowsWithRelatedRecords: Boolean` When true, the report keeps only main rows that have a matching related record for this relation; when false, rows without a match are still shown.
- `aggregationType: HardcodedAggregationType` How values from multiple related records are combined into a single value (Sum, Average or Max).

### LeadDashboardProfileTab (object)

Lead tab of a dashboard report, holding the saved lead dashboard it shows.

- `id: ID!` Identifier of the dashboard tab.
- `leadDashboardProfile: LeadDashboardProfile` Saved dashboard profile (filter, role and view) shown on this lead dashboard tab.

### LeadRoleTab (object)

Ownership scope of lead reports and views: which leads are included by their relation to the current user.

- `showMyItems: Boolean!` When true, includes records owned by the current user.
- `showMySharedItems: Boolean!` When true, includes records shared with the current user.
- `showManagingUnitItems: Boolean!` When true, includes records owned by users in the sales units the current user manages.
- `showUnassignedItems: Boolean!` When true, includes records that have no owner assigned.

### OpportunityDashboardProfileTab (object)

Opportunity tab of a dashboard report, holding the saved opportunity dashboard it shows.

- `id: ID!` Identifier of the dashboard tab.
- `opportunityDashboardProfile: OpportunityDashboardProfile` Saved dashboard profile (filter, role and view) shown on this opportunity dashboard tab.

### OpportunityForecastProfileTab (object)

Opportunity forecast tab of a forecast report, holding the saved forecast it shows.

- `id: ID!` Id of the forecast item within the report tab.
- `opportunityForecastProfile: OpportunityForecastProfile` Saved opportunity forecast view (filter, sales pipeline, grouping, columns and quota) backing this forecast tab.

### PivotTable (object)

Pivot table of a report: summarizes records of one type by row and column dimensions, with its filter and view settings.

- `id: ID!` Unique identifier of this item within the report structure.
- `parentId: ID` ID of a parent report structure, if ID is NULL this identifies root item, no more than one root item is allowed
- `sortOrder: Int!` Order of the item on the within same parent
- `entityType: EntityNameEnum!` Entity type whose records the pivot reports on, such as Account, Lead or Opportunity.
- `entityApiName: String` API name of the entity for this pivot; set for custom entities to identify which one is used.
- `entitySubtypes: [EntitySubtypeItem!]` List of possible entity subtypes of entityType, if entity type is abstract you can supply with entityTypes of all children of abstract entity
- `calculationFieldId: ID` Id of the opportunity value field the pivot uses for amount calculations; applied only when the main box or pivot entity is Opportunity or LeadOppty.
- `tabs: PivotReportTabsInterface!` Filter and view settings for the pivot report.

### ReportBoxInterface (interface)

Box of a report: a set of records of one type, identified within the report structure.

- `id: ID!` Unique identifier of the box within the report structure.
- `calculationFieldId: ID` Id of the opportunity value field the report uses for amount calculations, such as won amounts compared with targets; applied only when the box entity is Opportunity or LeadOppty.
- `entityType: EntityNameEnum!` Entity type whose records this box reports on, such as Account, Lead or Opportunity.
- `entityApiName: String` API name of the entity for this box; set for custom entities to identify which one is used.
- `entitySubtypes: [EntitySubtypeItem!]` List of possible entity subtypes of entityType, if entity type is abstract you can supply with entityTypes of all children of abstract entity

### ReportMainBox (object)

Main box of a report table: the record type each row represents and its displayed columns.

- `id: ID!` Unique identifier of the box within the report structure.
- `calculationFieldId: ID` Id of the opportunity value field the report uses for amount calculations, such as won amounts compared with targets; applied only when the box entity is Opportunity or LeadOppty.
- `entityType: EntityNameEnum!` Entity type whose records this box reports on, such as Account, Lead or Opportunity.
- `entityApiName: String` API name of the entity for this box; set for custom entities to identify which one is used.
- `entitySubtypes: [EntitySubtypeItem!]` List of possible entity subtypes of entityType, if entity type is abstract you can supply with entityTypes of all children of abstract entity
- `name: String!` Name of the box, shown as the heading above the box's columns in printed and exported reports.
- `displayFields: [DisplayFieldItem!]!` An ordered list of field ID to display with width and color information from box source

### ReportSchema (object)

Settings of a table or advanced report: its structure of report tables and pivot tables.

- `structure: [ReportStructureItem!]!` Flat list of the report's structure items (tables and pivots) linked by parent identifiers to form the report tree; exactly one item is the root.
- `isAdvancedReport: Boolean` This flag defines if report should be handled with advanced report GUI or not

### ReportSettings (union)

Settings of a report; the variant depends on the report type: a table or advanced report, a dashboard report or a forecast report.

ReportSchema | DashboardSchema | ForecastSchema | BetterDashboardSchema

### ReportSiblingBox (object)

Box of a report table that shows columns from records related to the main box.

- `id: ID!` Unique identifier of the box within the report structure.
- `calculationFieldId: ID` Id of the opportunity value field the report uses for amount calculations, such as won amounts compared with targets; applied only when the box entity is Opportunity or LeadOppty.
- `entityType: EntityNameEnum!` Entity type whose records this box reports on, such as Account, Lead or Opportunity.
- `entityApiName: String` API name of the entity for this box; set for custom entities to identify which one is used.
- `entitySubtypes: [EntitySubtypeItem!]` List of possible entity subtypes of entityType, if entity type is abstract you can supply with entityTypes of all children of abstract entity
- `name: String!` Name of the box, shown as the heading above the box's columns in printed and exported reports.
- `displayFields: [DisplayFieldItem!]!` An ordered list of field ID to display with width and color information from box source
- `lookupFieldId: UUID` Identifier of the lookup field that links this sibling box to its parent box; set when the relation is defined through a specific lookup field.
- `relation: SiblingBoxRelationType` How records in this sibling box relate to the parent box, either an aggregation over related records or a predefined hardcoded relation.

### ReportStructureItem (interface)

Item of a report structure: a report table or pivot table placed in the report tree.

- `id: ID!` Unique identifier of this item within the report structure.
- `parentId: ID` ID of a parent report structure, if ID is NULL this identifies root item, no more than one root item is allowed
- `sortOrder: Int!` Order of the item on the within same parent

### ReportTable (object)

Report table: rows of a main record type with columns from related records, plus its filter and view settings.

- `id: ID!` Unique identifier of this item within the report structure.
- `parentId: ID` ID of a parent report structure, if ID is NULL this identifies root item, no more than one root item is allowed
- `sortOrder: Int!` Order of the item on the within same parent
- `mainBox: ReportMainBox!` Primary box of the table, defining the entity each row represents and its displayed columns.
- `siblingBoxes: [SiblingBoxInterface!]!` Related boxes joined to the main box to pull in or aggregate data from related records.
- `tabs: TableReportTabsInterface!` Filter and view settings for the table report.

### RoleTabInterface (interface)

Ownership scope of a report or view: which records are included by their relation to the current user.

- `showMyItems: Boolean!` When true, includes records owned by the current user.

### SiblingBoxInterface (interface)

Box joined to a report table's main box that brings in or aggregates data from related records.

- `id: ID!` Unique identifier of the box within the report structure.
- `calculationFieldId: ID` Id of the opportunity value field the report uses for amount calculations, such as won amounts compared with targets; applied only when the box entity is Opportunity or LeadOppty.
- `entityType: EntityNameEnum!` Entity type whose records this box reports on, such as Account, Lead or Opportunity.
- `entityApiName: String` API name of the entity for this box; set for custom entities to identify which one is used.
- `entitySubtypes: [EntitySubtypeItem!]` List of possible entity subtypes of entityType, if entity type is abstract you can supply with entityTypes of all children of abstract entity
- `lookupFieldId: UUID` Identifier of the lookup field that links this sibling box to its parent box; set when the relation is defined through a specific lookup field.
- `relation: SiblingBoxRelationType` How records in this sibling box relate to the parent box, either an aggregation over related records or a predefined hardcoded relation.

### SiblingBoxRelationType (union)

How a sibling box relates to its parent box: an aggregation over the related records or a predefined relation.

AggregationRelation | HardcodedRelation

### VisibleBoxInterface (interface)

Report box whose fields are shown as columns: its name and displayed fields.

- `name: String!` Name of the box, shown as the heading above the box's columns in printed and exported reports.
- `displayFields: [DisplayFieldItem!]!` An ordered list of field ID to display with width and color information from box source

Types several repositories share, such as `PageInfo` and the filter fields, are in the [types index](https://developers.coevera.com/reference/graphql/types.md). The [SDL](https://developers.coevera.com/graphql/schema.graphql) has the whole schema in one file.

## Example

```graphql
query FirstReports {
  entities {
    report {
      getByCriteria(first: 3, orderBy: [{ modified: Desc }]) {
        totalCount
        edges { node { id name modified } }
      }
    }
  }
}
```

```bash
curl 'https://{region}.api.coevera.com/api/v100/app/space/{space_id}/graphql/public' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
  --header 'Content-Type: application/json' \
  --data '{"query":"query FirstReports { entities { report { getByCriteria(first: 3, orderBy: [{ modified: Desc }]) { totalCount edges { node { id name modified } } } } } }"}'
```
