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

# entities.emailTemplate

Read email template records with the emailTemplate repository, and change them with the email template mutations. Same records as the REST EmailTemplates entity.

REST: [EmailTemplates](https://developers.coevera.com/reference/rest/email-templates.md).

## Queries

- `getById(entityId: ID!): EmailTemplateEntity` Returns the record with the given id, or null when there is none. Deleted records are returned as well.
- `getByIds(entityIds: [ID!]!): [EmailTemplateEntity!]!` 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: EmailTemplateFilterInput, orderBy: [EmailTemplateOrderByInput!], includeDeleted: Boolean): [EmailTemplateEntity!]!` Returns the records that match the filter, paged with limit and offset.
- `getByCriteria(filter: EmailTemplateFilterInput, orderBy: [EmailTemplateOrderByInput!], includeDeleted: Boolean, before: String, after: String, first: Int, last: Int): EmailTemplateEntityConnection` 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.
- `previewPersonifiedRecordsById(entityId: ID!, personificationEntityData: [PersonificationEntityDataParams!]!): EmailTemplatePersonificationResult!` Assigns properties of a living entity to a non-living template from its id.
- `previewPersonifiedRecords(entity: CreateEmailTemplateInput!, personificationEntityData: [PersonificationEntityDataParams!]!): EmailTemplatePersonificationResult!` Assigns properties of a living entity to a non-living template from input object.
- `getAffectedProcesses(entityId: UUID!, operation: AffectedProcessesOperationType!, sharing: AffectedProcessesSharing): [AffectedProcessesProcessOutput!]!` Returns the processes that send the given email template, so the caller can see which processes a change to the template affects.
- `getAffectedEmailSequences(entityId: UUID!, operation: AffectedProcessesOperationType!, sharing: AffectedProcessesSharing): [AffectedProcessesProcessOutput!]!` Returns the email sequences that send the given email template, so the caller can see which sequences a change to the template affects.
- `getStatusInProcess(entityId: UUID!, processId: UUID): StatusInProcessOutput!` Returns an email template's content and attachments, with a status telling whether a process can still use it.
- `getStatusInEmailSequence(entityId: UUID!, emailSequenceId: UUID): StatusInProcessOutput!` Returns an email template's content and attachments, with a status telling whether an email sequence can still use it.
- `convertWysiwygTemplateToHtml(body: String!): String!` Converts an email template body built in the visual (WYSIWYG) editor from MJML markup into HTML ready to be sent.

## Mutations

- `personalizeBodyEmailTemplate(input: PersonalizeBodyEmailTemplateInput!): PersonalizeBodyEmailTemplatePayload` Returns the template body as HTML with its merge fields filled from the given record. The template is not changed; merge fields without a value show the field name. GraphQL only.
- `createEmailTemplate(input: CreateEmailTemplateInput!, validationLevel: [ValidationLevel!]): CreateEmailTemplatePayload` Create one record.
- `updateEmailTemplate(input: UpdateEmailTemplateInput!, validationLevel: [ValidationLevel!], sessionIdToUpdate: String): UpdateEmailTemplatePayload` Update fields.
- `bulkUpdateEmailTemplate(input: [CreateOrUpdateEmailTemplateInput!]!, deleteInput: [DeleteEmailTemplateInput!], validationLevel: [ValidationLevel!], rollbackMethod: RollbackMethod, match: MatchingInput): BulkUpdateEmailTemplatePayload` Create or update many; per-item results.
- `deleteEmailTemplate(input: DeleteEmailTemplateInput!): DeleteEmailTemplatePayload` Soft-delete.

## Types

### EmailTemplateEntity (object)

Reusable email whose body can contain placeholders filled with record values; templates are organized in folders and can be shared.

- `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.
- `emailTemplateFolder: EmailTemplateFolderEntity` Folder in the template hierarchy that the template belongs to. Empty for templates at the root level.
- `owner: ClientEntity` User who owns the template.
- `body: String` HTML body of the template. May use merge-field placeholders that are filled with record values when the template is composed.
- `emailTemplateFolderId: ID` Id of the folder the template belongs to. Empty for templates at the root level.
- `name: String!` Name of the entity and its default text representation.
- `ownerId: ID!` Id of the template owner.
- `recentColors: [Int!]` Colors recently used in the editor of the template body, as integer color values.
- `shareMode: ShareModeEnum` Sharing model for the template (e.g. shared with selected sales units, selected users, or open for editing by all).
- `sharingUrlIsEnabled: Boolean` When true, the template's public sharing URL is active and accessible. Setting to false invalidates outstanding sharing URLs.
- `sharingUrlSettings: EmailTemplateSharingUrlSettings` Public sharing link of the template and, when personalized, the record whose data fills the template.
- `subject: String!` Subject line of emails composed from this template. Supports merge-field placeholders.
- `type: EmailTemplateTypeEnum!` Template format: plain text (TextTemplate), raw HTML (HtmlTemplate) or built in the visual editor (WysiwygTemplate).
- `revision: Int` Revision when entity was lastly changed.
- `solutions: SolutionEntityConnection (4 args)` Solutions whose canvas contains this record. Deleted solutions are not included.
- `sharingUnits: EmailTemplateSharingSalesUnitRelationEntityConnection (8 args)` Sales units granted shared access to this template (custom share mode).
- `sharingClients: EmailTemplateSharingClientRelationEntityConnection (8 args)` Users granted shared access to this template (custom share mode).
- `documents: CloudObjectRelationEntityConnection (8 args)` Files attached to the template (used as default attachments).
- `instancePermissions: [EntityPermsEnum!]! (1 args)` Permissions the current user has on this record, out of the requested ones.
- `trackingInfo: MassEmailTrackingInfo! (1 args)` Tracking statistics (sent, opened, clicked, replied, bounced, unsubscribed) of the emails sent with this template.

### EmailTemplateEntityConnection (object)

Paginated list of EmailTemplate records.

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

### EmailTemplateEntityEdge (object)

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

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

### EmailTemplateFilterInput (input)

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

- `OR: [EmailTemplateFilterInput!]` Matches records that meet at least one of the listed filters.
- `AND: [EmailTemplateFilterInput!]` Matches records that meet all of the listed filters.
- `NOT: EmailTemplateFilterInput` 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.
- `body: EntityFilterStringField` HTML body of the template. May use merge-field placeholders that are filled with record values when the template is composed.
- `emailTemplateFolderId: EntityFilterStringField` Id of the folder the template belongs to. Empty for templates at the root level.
- `name: EntityFilterStringField` Name of the entity and its default text representation.
- `ownerId: EntityFilterStringField` Id of the template owner.
- `shareMode: ShareModeEnumFilterInput` Sharing model for the template (e.g. shared with selected sales units, selected users, or open for editing by all).
- `sharingUrlIsEnabled: Boolean` When true, the template's public sharing URL is active and accessible. Setting to false invalidates outstanding sharing URLs.
- `subject: EntityFilterStringField` Subject line of emails composed from this template. Supports merge-field placeholders.
- `type: EmailTemplateTypeEnumFilterInput` Template format: plain text (TextTemplate), raw HTML (HtmlTemplate) or built in the visual editor (WysiwygTemplate).
- `revision: EntityFilterNumberField` Revision when entity was lastly changed.
- `emailTemplateFolder: EmailTemplateFolderFilterInput` Folder in the template hierarchy that the template belongs to. Empty for templates at the root level. Matches records where a related record meets these conditions.
- `owner: ClientFilterInput` User who owns the template. Matches records where a related record meets these conditions.
- `sharingUnits: EmailTemplateSharingSalesUnitRelationFilterInput` Sales units granted shared access to this template (custom share mode). Matches records where a related record meets these conditions.
- `sharingClients: EmailTemplateSharingClientRelationFilterInput` Users granted shared access to this template (custom share mode). Matches records where a related record meets these conditions.
- `documents: CloudObjectRelationFilterInput` Files attached to the template (used as default attachments). Matches records where a related record meets these conditions.

### EmailTemplateOrderByInput (input)

Sorting of EmailTemplate 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.
- `emailTemplateFolder: [EmailTemplateFolderOrderByNestedInput!]` Folder in the template hierarchy that the template belongs to. Empty for templates at the root level. Sorts by fields of the related record, listed in order of priority.
- `owner: [ClientOrderByNestedInput!]` User who owns the template. Sorts by fields of the related record, listed in order of priority.
- `emailTemplateFolderId: OrderByEnum` Id of the folder the template belongs to. Empty for templates at the root level.
- `name: OrderByEnum` Name of the entity and its default text representation.
- `ownerId: OrderByEnum` Id of the template owner.
- `shareMode: OrderByEnum` Sharing model for the template (e.g. shared with selected sales units, selected users, or open for editing by all).
- `sharingUrlIsEnabled: OrderByEnum` When true, the template's public sharing URL is active and accessible. Setting to false invalidates outstanding sharing URLs.
- `subject: OrderByEnum` Subject line of emails composed from this template. Supports merge-field placeholders.
- `type: OrderByEnum` Template format: plain text (TextTemplate), raw HTML (HtmlTemplate) or built in the visual editor (WysiwygTemplate).
- `revision: OrderByEnum` Revision when entity was lastly changed.
- `solutions: OrderByEnum` Names of the solutions whose canvas contains this template, in name order. Empty when the template is on no solution canvas.

### EmailTemplateTypeEnumFilterInput (input)

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

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

### AffectedProcessesSharing (input)

Planned sharing of an email template, used to find the processes and email sequences that the change affects.

- `mode: ShareModeEnum!` Planned share mode of the email template.
- `clients: [SharingRecord!]` Users the template is to be shared with, each with a sharing role.
- `units: [SharingRecord!]` Sales units the template is to be shared with, each with a sharing role.

### CreateEmailTemplateInput (input)

Field values of a new EmailTemplate record.

- `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).
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `body: String` HTML body of the template. May use merge-field placeholders that are filled with record values when the template is composed.
- `emailTemplateFolderId: ID` Id of the folder the template belongs to. Empty for templates at the root level.
- `name: String!` Name of the entity and its default text representation.
- `ownerId: ID!` Id of the template owner.
- `recentColors: [Int!]` Colors recently used in the editor of the template body, as integer color values.
- `shareMode: ShareModeEnum` Sharing model for the template (e.g. shared with selected sales units, selected users, or open for editing by all).
- `sharingUrlIsEnabled: Boolean` When true, the template's public sharing URL is active and accessible. Setting to false invalidates outstanding sharing URLs.
- `sharingUrlSettings: JSONString` Public sharing-link configuration: resolved URL plus optional personalisation context (entity type, entity id) used to pre-fill merge fields. Empty when no sharing link is configured.
- `subject: String!` Subject line of emails composed from this template. Supports merge-field placeholders.
- `type: EmailTemplateTypeEnum!` Template format: plain text (TextTemplate), raw HTML (HtmlTemplate) or built in the visual editor (WysiwygTemplate).
- `revision: Int` Revision when entity was lastly changed.
- `sharingUnits: [CreateEmailTemplateSharingSalesUnitRelationNoEmailTemplateBackrefInput!]` Sales units granted shared access to this template (custom share mode).
- `sharingClients: [CreateEmailTemplateSharingClientRelationNoEmailTemplateBackrefInput!]` Users granted shared access to this template (custom share mode).
- `documents: [CreateCloudObjectRelationNoBackrefInput!]` Files attached to the template (used as default attachments).

### CreateEmailTemplateSharingClientRelationNoEmailTemplateBackrefInput (input)

Field values of a new EmailTemplateSharingClientRelation record, created together with the record it belongs to.

- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `clientId: ID!` Id of the user.
- `role: SharingRoleEnum` Access the sharing gives the user on the template: Watcher can view it, Editor can view and edit it.
- `revision: Int` Revision when entity was lastly changed.

### CreateEmailTemplateSharingSalesUnitRelationNoEmailTemplateBackrefInput (input)

Field values of a new EmailTemplateSharingSalesUnitRelation record, created together with the record it belongs to.

- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `role: SharingRoleEnum` Access the sharing gives the sales unit on the template: Watcher can view it, Editor can view and edit it.
- `unitId: ID!` Id of the sales unit.
- `revision: Int` Revision when entity was lastly changed.

### CreateOrUpdateEmailTemplateInput (input)

Field values of an EmailTemplate record to create, or to update when its id is set.

- `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).
- `id: ID` Unique identifier of entity.
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `body: String` HTML body of the template. May use merge-field placeholders that are filled with record values when the template is composed.
- `emailTemplateFolderId: ID` Id of the folder the template belongs to. Empty for templates at the root level.
- `name: String` Name of the entity and its default text representation.
- `ownerId: ID` Id of the template owner.
- `recentColors: [Int!]` Colors recently used in the editor of the template body, as integer color values.
- `shareMode: ShareModeEnum` Sharing model for the template (e.g. shared with selected sales units, selected users, or open for editing by all).
- `sharingUrlIsEnabled: Boolean` When true, the template's public sharing URL is active and accessible. Setting to false invalidates outstanding sharing URLs.
- `sharingUrlSettings: JSONString` Public sharing-link configuration: resolved URL plus optional personalisation context (entity type, entity id) used to pre-fill merge fields. Empty when no sharing link is configured.
- `subject: String` Subject line of emails composed from this template. Supports merge-field placeholders.
- `type: EmailTemplateTypeEnum` Template format: plain text (TextTemplate), raw HTML (HtmlTemplate) or built in the visual editor (WysiwygTemplate).
- `revision: Int` Revision when entity was lastly changed.
- `sharingUnits: [CreateEmailTemplateSharingSalesUnitRelationNoEmailTemplateBackrefInput!]` Sales units granted shared access to this template (custom share mode).
- `sharingClients: [CreateEmailTemplateSharingClientRelationNoEmailTemplateBackrefInput!]` Users granted shared access to this template (custom share mode).
- `documents: [CreateCloudObjectRelationNoBackrefInput!]` Files attached to the template (used as default attachments).

### DeleteEmailTemplateInput (input)

Id of the EmailTemplate record to delete.

- `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).
- `id: ID!` Unique identifier of entity.

### PersonalizeBodyEmailTemplateInput (input)

Parameters of the personalizeBodyEmailTemplate mutation.

- `entityId: UUID` Id of the record whose values fill the merge fields. Leave empty to get the body without record data.
- `entityType: EntityNameEnum` Type of the record given in entityId.
- `entityApiName: String` API name of the custom entity when the record is a custom entity; entityType must still be set.
- `id: ID!` Identifier of the EmailTemplateEntity 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).

### PersonificationEntityDataParams (input)

Records whose data fill the placeholders of an email or text message, such as its contact, account or opportunity.

- `primary: EntityLacotaType` Which of the given records, such as the Contact or the Account, the message is primarily addressed to.
- `opportunityId: UUID` Opportunity whose data fills the opportunity placeholders.
- `contactId: UUID` Contact whose data fills the contact placeholders.
- `accountId: UUID` Account whose data fills the account placeholders.
- `leadId: UUID` Lead whose data fills the lead placeholders.
- `projectId: UUID` Project whose data fills the project placeholders.
- `quoteId: UUID` Quote whose data fills the quote placeholders.
- `customEntityIds: [CustomEntityIDParams]` Custom entity records whose data fill the custom entity placeholders, each given as a `CustomEntityID`.

### SharingRecord (input)

User or sales unit an email template is to be shared with, and the sharing role it gets.

- `id: UUID!` Id of the user or sales unit.
- `role: SharingRoleEnum!` Access the user or sales unit gets: Watcher (can view) or Editor (can view and edit).

### UpdateEmailTemplateInput (input)

Id of an EmailTemplate record and the field values to change.

- `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).
- `id: ID!` Unique identifier of entity.
- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `body: String` HTML body of the template. May use merge-field placeholders that are filled with record values when the template is composed.
- `emailTemplateFolderId: ID` Id of the folder the template belongs to. Empty for templates at the root level.
- `name: String` Name of the entity and its default text representation.
- `ownerId: ID` Id of the template owner.
- `recentColors: [Int!]` Colors recently used in the editor of the template body, as integer color values.
- `shareMode: ShareModeEnum` Sharing model for the template (e.g. shared with selected sales units, selected users, or open for editing by all).
- `sharingUrlIsEnabled: Boolean` When true, the template's public sharing URL is active and accessible. Setting to false invalidates outstanding sharing URLs.
- `sharingUrlSettings: JSONString` Public sharing-link configuration: resolved URL plus optional personalisation context (entity type, entity id) used to pre-fill merge fields. Empty when no sharing link is configured.
- `subject: String` Subject line of emails composed from this template. Supports merge-field placeholders.
- `type: EmailTemplateTypeEnum` Template format: plain text (TextTemplate), raw HTML (HtmlTemplate) or built in the visual editor (WysiwygTemplate).
- `revision: Int` Revision when entity was lastly changed.
- `sharingUnits: [CreateEmailTemplateSharingSalesUnitRelationNoEmailTemplateBackrefInput!]` Sales units granted shared access to this template (custom share mode).
- `sharingClients: [CreateEmailTemplateSharingClientRelationNoEmailTemplateBackrefInput!]` Users granted shared access to this template (custom share mode).
- `documents: [CreateCloudObjectRelationNoBackrefInput!]` Files attached to the template (used as default attachments).

### BulkUpdateEmailTemplatePayload (object)

Result of the bulkUpdateEmailTemplate mutation.

- `result: BulkUpdateResults!` Ids of the created, updated and deleted records, and the items that failed.

### CreateEmailTemplatePayload (object)

Result of the createEmailTemplate mutation.

- `emailTemplate: EmailTemplateEntity` The created record.
- `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).

### DeleteEmailTemplatePayload (object)

Result of the deleteEmailTemplate mutation.

- `emailTemplate: EmailTemplateEntity` The deleted record.
- `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).

### PersonalizeBodyEmailTemplatePayload (object)

Result of the personalizeBodyEmailTemplate mutation.

- `result: String` The personalized HTML body.
- `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).

### UpdateEmailTemplatePayload (object)

Result of the updateEmailTemplate mutation.

- `emailTemplate: EmailTemplateEntity` The updated record.
- `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).

### AffectedProcessesOperationType (enum)

Planned change to an email template when listing the processes or email sequences that use it.

- `save` The template content is being changed.
- `delete` The template is being deleted.
- `sharing` The template's sharing is being changed.

### AffectedProcessesProcessOutput (object)

Process or email sequence that uses an email template.

- `name: String!` Name of the process or email sequence.
- `id: UUID!` Id of the process or email sequence that uses the template.

### EmailTemplatePersonificationResult (object)

Copies of the EmailTemplate with its placeholders filled from the given records, and the records and fields that could not be used.

- `missingRecordsIds: [UUID!]!` Ids of requested records that could not be loaded.
- `disallowedFieldsIds: [UUID!]!` Ids of fields used in the template whose values the caller is not allowed to read.
- `missingFieldsIds: [UUID!]!` Ids of fields used in the template that do not exist or do not belong to any of the given records.
- `results: [EmailTemplateEntity!]!` Copies of the template with the placeholders filled, one for each requested set of records, in request order.

### EmailTemplateSharingUrlSettings (object)

Public sharing link of an email template and the record whose data fills the template on the shared page.

- `url: String!` Public sharing link of the template. Generated by the server.
- `personalizedEntityType: EntityNameEnum` Type of the record whose data fills the template on the shared page; empty when the template is not personalized.
- `personalizedEntityApiName: String` API name of the custom entity when the personalizing record is a custom entity.
- `personalizedEntityRecordId: ID` Id of the record whose data fills the template on the shared page.

### EmailTemplateTypeEnum (enum)

Format of an email template.

- `TextTemplate` Plain-text template.
- `HtmlTemplate` Template written as raw HTML.
- `WysiwygTemplate` Template built in the visual (WYSIWYG) editor.

### StatusInProcessOutput (object)

Email template as used by a process or email sequence, with whether it can still use it.

- `id: UUID!` Id of the email template.
- `name: String!` Name of the email template.
- `type: EmailTemplateTypeEnum!` Format of the email template.
- `status: TemplateStatusInProcess!` Whether the process or email sequence can still use the template: Ok, Deleted or Unavailable.
- `documents: [CloudObjectEntity]` Files attached to the email template.
- `subject: String` Subject of the email template.
- `body: String` Content of the email template.

### TemplateStatusInProcess (enum)

Whether an email template used by a process or email sequence can still be used.

- `Unavailable` The template exists but the caller cannot open it; the given process or sequence still uses it.
- `Deleted` The template has been deleted.
- `Ok` The template is available.

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 FirstEmailTemplates {
  entities {
    emailTemplate {
      getByCriteria(first: 3, orderBy: [{ modified: Desc }]) {
        totalCount
        edges { node { id name subject 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 FirstEmailTemplates { entities { emailTemplate { getByCriteria(first: 3, orderBy: [{ modified: Desc }]) { totalCount edges { node { id name subject modified } } } } } }"}'
```
