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

# entities.approvalProcess

Read approval process records with the approvalProcess repository, and change them with the approval process mutations. Same records as the REST ApprovalProcesses entity.

REST: [ApprovalProcesses](https://developers.coevera.com/reference/rest/approval-processes.md).

## Queries

- `getById(entityId: ID!): ApprovalProcessEntity` Returns the record with the given id, or null when there is none. Deleted records are returned as well.
- `getByIds(entityIds: [ID!]!): [ApprovalProcessEntity!]!` 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: ApprovalProcessFilterInput, orderBy: [ApprovalProcessOrderByInput!], includeDeleted: Boolean): [ApprovalProcessEntity!]!` Returns the records that match the filter, paged with limit and offset.
- `getByCriteria(filter: ApprovalProcessFilterInput, orderBy: [ApprovalProcessOrderByInput!], includeDeleted: Boolean, before: String, after: String, first: Int, last: Int): ApprovalProcessEntityConnection` 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.
- `getByApprovalProcessCriteria(listingOptions: ProcessTabDataGridViewOptionsParams!, filter: ApprovalProcessFilterInput, orderBy: [ApprovalProcessOrderByInput!], before: String, after: String, first: Int, last: Int): ApprovalProcessEntityConnection` Returns a page of approval processes filtered by owner, enabled state and status, in addition to the regular filter.
- `getApprovalProcessesWithManualTrigger(limit: Int, offset: Int, filter: ApprovalProcessFilterInput, orderBy: [ApprovalProcessOrderByInput!]): [ApprovalProcessEntity!]!` Returns approval processes with a manual trigger that the current user is allowed to start, according to each trigger's allowed users and units.

## Mutations

- `createApprovalProcess(input: CreateApprovalProcessInput!, validationLevel: [ValidationLevel!]): CreateApprovalProcessPayload` Create one record.
- `updateApprovalProcess(input: UpdateApprovalProcessInput!, validationLevel: [ValidationLevel!], sessionIdToUpdate: String): UpdateApprovalProcessPayload` Update fields.
- `bulkUpdateApprovalProcess(input: [CreateOrUpdateApprovalProcessInput!]!, deleteInput: [DeleteApprovalProcessInput!], validationLevel: [ValidationLevel!], rollbackMethod: RollbackMethod, match: MatchingInput): BulkUpdateApprovalProcessPayload` Create or update many; per-item results.
- `deleteApprovalProcess(input: DeleteApprovalProcessInput!): DeleteApprovalProcessPayload` Soft-delete.

## Types

### ApprovalProcessEntity (object)

Approval rule that raises approval requests for records of an entity when its trigger conditions are met, and defines who approves them.

- `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 approval process.
- `description: String` Free-text description shown alongside the approval process.
- `entityType: BaseEntityTypeEnum` Entity whose records the approval process is raised for, taken from the trigger in settings. Read-only.
- `isEnabled: Boolean!` When true, the approval process actively raises approvals on matching record events; when false, the process is paused.
- `lastSchemaChange: DateTime` Timestamp of the most recent change to settings.
- `lastStatusChange: DateTime` Timestamp of the most recent change to isEnabled.
- `name: String!` Name of the entity and its default text representation.
- `ownerId: ID!` Id of the owning user.
- `priority: Int` Position of this process among approval processes for the same record-trigger entity type; lower values are evaluated first. Read-only; managed via update_priority. Null for manual-trigger approval processes.
- `settings: ApprovalProcessSchema` Approval process schema as a JSON object conforming to the ApprovalProcessSchema type — trigger, filter, approver settings, and approve/reject nodes. Validated on write.
- `documents: [CloudObjectRelationEntity!]` Files attached to the approval process (e.g. process documentation).
- `activityLogs: ApprovalEntityConnection (7 args)` Approvals (one per process run) raised by this approval process.
- `triggerEntityName: EntityNameEnum` For record-change triggers, the entity whose records can raise an approval (e.g. "Quote"). Empty for manual triggers.
- `status: ProcessStatusEnum` Overall status of the approval process, derived from the approvals it raised since it was last enabled or its settings changed: Ok, Warning or Error. Ok when there are none.
- `triggerType: ApprovalProcessTriggerTypeEnum` How approvals are raised: Manual (a user must initiate) or RecordChange (automatically when a record matching the trigger condition is created or updated).
- `instancePermissions: [EntityPermsEnum!]! (1 args)` Permissions the current user has on this record, out of the requested ones.

### ApprovalProcessEntityConnection (object)

Paginated list of ApprovalProcess records.

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

### ApprovalProcessEntityEdge (object)

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

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

### ApprovalProcessFilterInput (input)

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

- `OR: [ApprovalProcessFilterInput!]` Matches records that meet at least one of the listed filters.
- `AND: [ApprovalProcessFilterInput!]` Matches records that meet all of the listed filters.
- `NOT: ApprovalProcessFilterInput` 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.
- `description: EntityFilterStringField` Free-text description shown alongside the approval process.
- `entityType: BaseEntityTypeEnumFilterInput` Entity whose records the approval process is raised for, taken from the trigger in settings. Read-only.
- `isEnabled: Boolean` When true, the approval process actively raises approvals on matching record events; when false, the process is paused.
- `lastSchemaChange: EntityFilterDateTimeField` Timestamp of the most recent change to settings.
- `lastStatusChange: EntityFilterDateTimeField` Timestamp of the most recent change to isEnabled.
- `name: EntityFilterStringField` Name of the entity and its default text representation.
- `ownerId: EntityFilterStringField` Id of the owning user.
- `priority: EntityFilterNumberField` Position of this process among approval processes for the same record-trigger entity type; lower values are evaluated first. Read-only; managed via update_priority. Null for manual-trigger approval processes.
- `triggerEntityName: EntityNameEnum` For record-change triggers, the entity whose records can raise an approval (e.g. "Quote"). Empty for manual triggers.
- `status: ProcessStatusEnum` Overall status of the approval process, derived from the approvals it raised since it was last enabled or its settings changed: Ok, Warning or Error. Ok when there are none.
- `triggerType: ApprovalProcessTriggerTypeEnum` How approvals are raised: Manual (a user must initiate) or RecordChange (automatically when a record matching the trigger condition is created or updated).
- `owner: ClientFilterInput` User who owns the approval process. Matches records where a related record meets these conditions.
- `documents: CloudObjectRelationFilterInput` Files attached to the approval process (e.g. process documentation). Matches records where a related record meets these conditions.
- `activityLogs: ApprovalFilterInput` Approvals (one per process run) raised by this approval process. Matches records where a related record meets these conditions.

### ApprovalProcessOrderByInput (input)

Sorting of ApprovalProcess 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 approval process. Sorts by fields of the related record, listed in order of priority.
- `description: OrderByEnum` Free-text description shown alongside the approval process.
- `isEnabled: OrderByEnum` When true, the approval process actively raises approvals on matching record events; when false, the process is paused.
- `lastSchemaChange: OrderByEnum` Timestamp of the most recent change to settings.
- `lastStatusChange: OrderByEnum` Timestamp of the most recent change to isEnabled.
- `name: OrderByEnum` Name of the entity and its default text representation.
- `ownerId: OrderByEnum` Id of the owning user.
- `priority: OrderByEnum` Position of this process among approval processes for the same record-trigger entity type; lower values are evaluated first. Read-only; managed via update_priority. Null for manual-trigger approval processes.
- `triggerEntityName: OrderByEnum` For record-change triggers, the entity whose records can raise an approval (e.g. "Quote"). Empty for manual triggers.
- `status: OrderByEnum` Overall status of the approval process, derived from the approvals it raised since it was last enabled or its settings changed: Ok, Warning or Error. Ok when there are none.
- `triggerType: OrderByEnum` How approvals are raised: Manual (a user must initiate) or RecordChange (automatically when a record matching the trigger condition is created or updated).

### CreateApprovalProcessInput (input)

Field values of a new ApprovalProcess record.

- `name: String!` Name of the approval process.
- `description: String` Free-text description shown alongside the approval process.
- `ownerId: UUID` Id of the user who owns the approval process. Defaults to the calling user.
- `settings: JSONString` Approval process schema as a JSON object conforming to the ApprovalProcessSchema type: trigger, filter, approver settings and approve/reject nodes. Validated on write. The new approval process is created disabled.

### CreateOrUpdateApprovalProcessInput (input)

Field values of an ApprovalProcess 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.
- `description: String` Free-text description shown alongside the approval process.
- `isEnabled: Boolean` When true, the approval process actively raises approvals on matching record events; when false, the process is paused.
- `lastSchemaChange: DateTime` Timestamp of the most recent change to settings.
- `lastStatusChange: DateTime` Timestamp of the most recent change to isEnabled.
- `name: String` Name of the entity and its default text representation.
- `ownerId: ID` Id of the owning user.
- `settings: JSONString` Approval process schema as a JSON object conforming to the ApprovalProcessSchema type — trigger, filter, approver settings, and approve/reject nodes. Validated on write.
- `documents: [CreateCloudObjectRelationNoBackrefInput!]` Files attached to the approval process (e.g. process documentation).

### DeleteApprovalProcessInput (input)

Id of the ApprovalProcess 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.

### UpdateApprovalProcessInput (input)

Id of an ApprovalProcess 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.
- `description: String` Free-text description shown alongside the approval process.
- `isEnabled: Boolean` When true, the approval process actively raises approvals on matching record events; when false, the process is paused.
- `lastSchemaChange: DateTime` Timestamp of the most recent change to settings.
- `lastStatusChange: DateTime` Timestamp of the most recent change to isEnabled.
- `name: String` Name of the entity and its default text representation.
- `ownerId: ID` Id of the owning user.
- `settings: JSONString` Approval process schema as a JSON object conforming to the ApprovalProcessSchema type — trigger, filter, approver settings, and approve/reject nodes. Validated on write.
- `documents: [CreateCloudObjectRelationNoBackrefInput!]` Files attached to the approval process (e.g. process documentation).

### BulkUpdateApprovalProcessPayload (object)

Result of the bulkUpdateApprovalProcess mutation.

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

### CreateApprovalProcessPayload (object)

Result of the createApprovalProcess mutation.

- `approvalProcess: ApprovalProcessEntity` The created record.

### DeleteApprovalProcessPayload (object)

Result of the deleteApprovalProcess mutation.

- `approvalProcess: ApprovalProcessEntity` 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).

### UpdateApprovalProcessPayload (object)

Result of the updateApprovalProcess mutation.

- `approvalProcess: ApprovalProcessEntity` 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).

### ApprovalProcessApprover (object)

Approver of an approval process: a specific user, or a role resolved from the record, such as the managers of its sales unit.

- `type: ApprovalProcessApproverType!` Kind of approver: a specific user (User), the managers of the record's sales unit (SalesUnitManager) or the record owner (Owner).
- `id: UUID` Id of the approving user when type is User; empty for the other approver types.

### ApprovalProcessApproverType (enum)

Who is asked to approve a record in an approval process.

- `User` A specific user, given by id.
- `SalesUnitManager` The managers of the record's sales unit.
- `Owner` The owner of the record.

### ApprovalProcessExpirationResult (enum)

Decision applied automatically when an approval request expires without a response.

- `Approve` The record is approved.
- `Reject` The record is rejected.

### ApprovalProcessManualTrigger (object)

Trigger that lets users start an approval process manually on a record.

- `actor: ProcessRecordTriggerActorEnum!` Which users are allowed to start the process: the process owner, selected users and sales units, any user, or applications only.
- `actorUnits: [UUID!]!` Sales units whose members are allowed to start the process. Applies when the actor is restricted to selected units and users.
- `actorUsers: [UUID!]!` Individual users allowed to start the process. Applies when the actor is restricted to selected units and users.
- `entityType: EntityNameEnum!` Type of record whose changes start this process, such as Lead, Opportunity, Account or Contact.
- `entityApiName: String` API name of the custom entity that starts this process. Set only when the trigger entity type is a custom entity.

### ApprovalProcessRecordLock (enum)

Who can still edit a record while its approval is pending or approved.

- `ManagersCanEdit` Only approval process managers can edit the record.
- `ManagersAndApproversCanEdit` Approval process managers and the record's approvers can edit the record.

### ApprovalProcessRecordTrigger (object)

Trigger that starts an approval process when a record is created or updated.

- `actor: ProcessRecordTriggerActorEnum!` Which users are allowed to start the process: the process owner, selected users and sales units, any user, or applications only.
- `actorUnits: [UUID!]!` Sales units whose members are allowed to start the process. Applies when the actor is restricted to selected units and users.
- `actorUsers: [UUID!]!` Individual users allowed to start the process. Applies when the actor is restricted to selected units and users.
- `entityType: EntityNameEnum!` Type of record whose changes start this process, such as Lead, Opportunity, Account or Contact.
- `entityApiName: String` API name of the custom entity that starts this process. Set only when the trigger entity type is a custom entity.
- `applications: [UUID!]!` Applications whose actions are allowed to start the approval process. When empty, no application restriction is applied.
- `event: ApprovalProcessRecordTriggerEventEnum!` Record change that starts the approval process: record created, updated, or created or updated.

### ApprovalProcessRecordTriggerEventEnum (enum)

Record event that starts an approval process automatically.

- `Create` A record is created.
- `CreateOrUpdate` A record is created or updated.
- `Update` A record is updated.

### ApprovalProcessSchema (object)

Definition of an approval process: what starts it, which records it applies to, who approves and what happens on approval or rejection.

- `trigger: ApprovalProcessTrigger!` What starts the approval — a record event or a manual launch.
- `filter: ProcessFilterNode!` Condition deciding which records the approval applies to.
- `settings: ApprovalProcessSettings!` Approver list and approval behaviour.
- `approveNodes: [ProcessNodeInterface!]!` Actions run when the approval is approved.
- `rejectNodes: [ProcessNodeInterface!]!` Actions run when the approval is rejected.

### ApprovalProcessSettings (object)

Approvers of an approval process and how the approval is decided, delegated and expired.

- `approvers: [ApprovalProcessApprover!]!` Ordered list of approvers who must act on the approval.
- `allApprove: Boolean!` When true, every approver must approve; when false, a single approval suffices.
- `canDelegate: Boolean!` When true, an approver may delegate their decision to another user.
- `recordLock: ApprovalProcessRecordLock!` Who may still edit the record while approval is pending — managers, or managers and approvers.
- `expiration: Boolean!` When true, the approval auto-resolves after expirationDays without a decision.
- `expirationDays: Int!` Days before an unanswered approval expires; at least 1 when expiration is true.
- `expirationResult: ApprovalProcessExpirationResult!` Outcome applied when the approval expires — Approve or Reject.
- `salesProcessDependency: Boolean!` When true, the approval is tied to the sales step of the record being approved.

### ApprovalProcessTrigger (union)

What starts an approval process: a change of a record or a manual start.

ApprovalProcessManualTrigger | ApprovalProcessRecordTrigger

### ApprovalProcessTriggerTypeEnum (enum)

How approval requests of an approval process are raised.

- `Manual` A user submits the record for approval.
- `RecordChange` Raised automatically when a record matching the trigger condition is created or updated.

### ProcessActorInterface (interface)

Users who are allowed to start a process or an approval process.

- `actor: ProcessRecordTriggerActorEnum!` Which users are allowed to start the process: the process owner, selected users and sales units, any user, or applications only.
- `actorUnits: [UUID!]!` Sales units whose members are allowed to start the process. Applies when the actor is restricted to selected units and users.
- `actorUsers: [UUID!]!` Individual users allowed to start the process. Applies when the actor is restricted to selected units and users.

### ProcessArchiveRecordNode (object)

A node which archives the record: a lead, opportunity, quote, account or contact.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `entity: ProcessEntityTemplate` Field values and operations applied to the record this node creates or updates.
- `completeRelatedActivities: Boolean!` When true, mark all activities related to the archived record as completed.

### ProcessChangeOwnershipAssigneeType (enum)

Where a change-ownership action picks the new owner from.

- `Client` From a list of specific users.
- `SalesUnit` From the members of the selected sales units.

### ProcessChangeOwnershipNode (object)

Process action that assigns a new owner to the record, rotating among users or the members of sales units.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `assigneeType: ProcessChangeOwnershipAssigneeType!` Whether the new owner is picked from a list of specific users or from the members of selected sales units.
- `clientIds: [ID!]!` Users among whom ownership is rotated in round-robin order. Used when the assignee type is a list of users.
- `salesUnitIds: [ID!]!` Sales units whose members ownership is rotated among in round-robin order. Used when the assignee type is sales unit.

### ProcessCopyRecordNode (object)

Process action that creates a copy of the triggered record.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `entity: ProcessEntityTemplate` Field values and operations applied to the record this node creates or updates.
- `triggerProcess: Boolean!` When true, the records affected by this node also start another process.
- `triggerProcessId: UUID` Process that the affected records start when triggering another process is enabled.

### ProcessCreateRecordNode (object)

A node which creates a new record that is not linked to the triggering record.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `entity: ProcessEntityTemplate` Field values and operations applied to the record this node creates or updates.
- `triggerProcess: Boolean!` When true, the records affected by this node also start another process.
- `triggerProcessId: UUID` Process that the affected records start when triggering another process is enabled.
- `entityType: EntityNameEnum!` Type of record this node creates, such as Lead, Opportunity, Account, Contact, Task or Appointment.
- `entityApiName: String` API name of the custom entity this node creates. Set only when the created record type is a custom entity.

### ProcessCreateRelatedRecordNode (object)

A node which creates entity with relation to the triggered entity

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `relation: ProcessRecordNodeRelationEnum!` Relationship from the triggered record to the related records this node acts on, such as a standard relation, a primary account or contact, a parent account, or a lookup field relation.
- `relationLookupFieldId: String` Lookup field that defines the relation. Required when the relation is a lookup, and must be empty otherwise.
- `entityApiName: String` API name of the related custom entity. Set only when the related record type is a custom entity.
- `entity: ProcessEntityTemplate` Field values and operations applied to the record this node creates or updates.
- `triggerProcess: Boolean!` When true, the records affected by this node also start another process.
- `triggerProcessId: UUID` Process that the affected records start when triggering another process is enabled.

### ProcessEnrollEmailSequenceNode (object)

Automation step that enrolls the triggered record into an email sequence.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `emailSequenceId: UUID!` Email sequence the triggered record is enrolled into.

### ProcessFilterNode (object)

Process node holding filter conditions; only the records that match them continue through the process.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `isEnabled: Boolean!` Whether the filter is applied. When false, the filter conditions are ignored.
- `filterMainBox: MainFilterBox!` Primary group of filter conditions evaluated on the main record type.
- `filterSiblingBoxes: [FilterBox!]!` Additional groups of filter conditions evaluated on related record types.
- `operator: FilterGroupOperator!` How the filter conditions are combined: all must match, any may match, or a custom expression.
- `formula: String` Custom boolean expression combining the numbered filter conditions. Used when the operator is a custom expression.

### ProcessLinkRecordNode (object)

Process action that links the triggered record to existing related records.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `triggerProcess: Boolean!` When true, the records linked by this node also start another process.
- `triggerProcessId: UUID` Process that the linked records start when triggering another process is enabled.
- `relation: ProcessRecordNodeRelationEnum!` Relationship from the triggered record to the related records this node acts on, such as a standard relation, a primary account or contact, a parent account, or a lookup field relation.
- `relationLookupFieldId: String` Lookup field that defines the relation. Required when the relation is a lookup, and must be empty otherwise.
- `entityApiName: String` API name of the related custom entity. Set only when the related record type is a custom entity.
- `recordIdentificationType: ProcessRecordIdentificationType!` How the records to link are found: by a filter condition, or by matching a field value against a field on the triggered record.
- `recordFilter: FieldFilter` Condition that selects the records to link. Used when records are identified by filter.
- `triggeredRecordFieldId: UUID` Field on the triggered record whose value is matched to find records to link. Used when records are identified by field.
- `recordFieldId: UUID` Field on the candidate records that must match the triggered record value. Used when records are identified by field.
- `linkAll: Boolean!` When true, link every matching record; when false, link only the best single match.

### ProcessManualTrigger (object)

Trigger that lets users start a process manually on a record.

- `actor: ProcessRecordTriggerActorEnum!` Which users are allowed to start the process: the process owner, selected users and sales units, any user, or applications only.
- `actorUnits: [UUID!]!` Sales units whose members are allowed to start the process. Applies when the actor is restricted to selected units and users.
- `actorUsers: [UUID!]!` Individual users allowed to start the process. Applies when the actor is restricted to selected units and users.
- `entityType: EntityNameEnum!` Type of record whose changes start this process, such as Lead, Opportunity, Account or Contact.
- `entityApiName: String` API name of the custom entity that starts this process. Set only when the trigger entity type is a custom entity.

### ProcessNodeInterface (interface)

Node of a process: a condition or an action in the process tree.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.

### ProcessNodeSchedule (object)

Delay of a process action: an offset from the trigger time or from a date field, or a fixed date.

- `offset: Int!` Delay before the action runs, expressed in the chosen unit. Positive values schedule after the reference point, negative values before it.
- `offsetUnit: ProcessNodeScheduleUnitEnum!` Unit of the offset: minutes, hours, days, working days, weeks or months.
- `offsetFieldId: UUID` Date field on the triggered record that the offset is measured from. When omitted, the offset is measured from the time the action is reached.
- `date: DateTime` Fixed date and time at which the action runs, used instead of an offset.

### ProcessNodeScheduleUnitEnum (enum)

Time unit of a scheduling offset in a process.

- `Minute` Offset measured in minutes.
- `Hour` Offset measured in hours.
- `Day` Offset measured in calendar days.
- `WorkingDay` Days that count only the space's working days.
- `Week` Offset measured in weeks.
- `Month` Offset measured in months.

### ProcessQualifyRecordNode (object)

Automation step that qualifies the lead that triggered the automation into an opportunity.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `entity: ProcessEntityTemplate` Field values and operations applied to the record this node creates or updates.

### ProcessRecordIdentificationType (enum)

How a link-record action finds the records to link.

- `Filter` Records matching a filter condition.
- `Field` Records whose field value matches a field on the triggered record.

### ProcessRecordTrigger (object)

Trigger that starts a process on a change of a record, such as its creation, update or deletion.

- `actor: ProcessRecordTriggerActorEnum!` Which users are allowed to start the process: the process owner, selected users and sales units, any user, or applications only.
- `actorUnits: [UUID!]!` Sales units whose members are allowed to start the process. Applies when the actor is restricted to selected units and users.
- `actorUsers: [UUID!]!` Individual users allowed to start the process. Applies when the actor is restricted to selected units and users.
- `entityType: EntityNameEnum!` Type of record whose changes start this process, such as Lead, Opportunity, Account or Contact.
- `entityApiName: String` API name of the custom entity that starts this process. Set only when the trigger entity type is a custom entity.
- `event: ProcessRecordTriggerEventEnum!` Record change that starts the process: record created, updated, created or updated, deleted, or an email sent or received.
- `changedFields: [UUID!]` Fields whose change starts the process. When empty, a change to any field qualifies. Applies to the update event.
- `applications: [UUID!]` Applications whose actions are allowed to start the process. When empty, no application restriction is applied.
- `parentEntityType: EntityNameEnum` Parent record type used when the trigger entity is a product line item, identifying whether the parent is an opportunity or a quote.

### ProcessRecordTriggerActorEnum (enum)

Whose actions start a process: the process owner, selected users and sales units, any user, or only selected applications.

- `ProcessOwner` Only actions of the process owner; always used by personal processes.
- `SelectedUnitsAndUsers` Actions of the selected users and members of the selected sales units.
- `AnyUser` Actions of any user.
- `ApplicationsOnly` Only changes made through the selected applications; not available for manual triggers.

### ProcessScheduleInterface (interface)

Process action whose run can be delayed by a schedule.

- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.

### ProcessSendEmailNode (object)

Automation step that sends an email, either to each recipient individually or as one mass email.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `isMass: Boolean!` Whether the email is sent as a single mass mailing to all recipients rather than as individual messages.
- `email: ProcessNodeEmail!` Email message this node sends.

### ProcessSendWebhookNode (object)

Process action that sends an HTTP request to an external URL.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `webhook: ProcessWebhook!` Webhook request this node sends.

### ProcessTriggerProcessNode (object)

Process action that starts another process for the triggered record or its related records.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `triggerRelation: ProcessRecordNodeRelationEnum` Relation from the triggered record to the records the process is started for; null starts it for the triggered record itself.
- `triggerRelationEntityApiName: String` API name of the related custom entity to start the process for. Set only when the relation targets a custom entity.
- `triggerRelationSender: Boolean` When true, the related records are passed to the started process as the records that triggered it.
- `relationLookupFieldId: String` Lookup field that defines the relation. Required when the relation is a lookup, and must be empty otherwise.
- `processId: UUID!` Process that this node starts.
- `filter: FieldFilter` Optional condition that narrows which related records the started process runs for.

### ProcessUnarchiveRecordNode (object)

A node which takes an archived lead, opportunity, quote, account or contact out of the archive.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `newClosingDate: Date` Closing date set on the record when it is unarchived. Required when unarchiving an opportunity or quote.

### ProcessUnenrollEmailSequenceNode (object)

Automation step that removes the triggered record from an email sequence.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `emailSequenceId: UUID!` Email sequence the triggered record is removed from.

### ProcessUpdateAiFieldsNode (object)

Automatizer action node that triggers AI Smart Field value updates.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `triggerProcess: Boolean!` When true, the records affected by this node also start another process.
- `triggerProcessId: UUID` Process that the affected records start when triggering another process is enabled.
- `smartAiFieldIds: [UUID!]!` AI smart fields whose values are recalculated when this node runs.
- `relation: ProcessRecordNodeRelationEnum` Relationship from the triggered record to the records whose AI fields are updated. When null, the triggered record itself is updated.
- `relationLookupFieldId: String` Lookup field that defines the relation. Required when the relation is a lookup, and must be empty otherwise.
- `entityApiName: String` API name of the related custom entity whose AI fields are updated. Set only when the related record type is a custom entity.

### ProcessUpdateRecordNode (object)

Automation step that updates the record that triggered the automation.

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `entity: ProcessEntityTemplate` Field values and operations applied to the record this node creates or updates.
- `triggerProcess: Boolean!` When true, the records affected by this node also start another process.
- `triggerProcessId: UUID` Process that the affected records start when triggering another process is enabled.

### ProcessUpdateRelatedRecordNode (object)

A node which updates related entities of triggered entity

- `id: ID!` Unique identifier of this node within the process node tree.
- `parentId: ID` Identifier of the node that precedes this one in the process node tree. Null for nodes attached directly to the trigger.
- `name: String!` Display name of the node shown in the process builder.
- `schedule: ProcessNodeSchedule` Optional schedule that delays this action to a later time. When null, the action runs immediately when reached.
- `relation: ProcessRecordNodeRelationEnum!` Relationship from the triggered record to the related records this node acts on, such as a standard relation, a primary account or contact, a parent account, or a lookup field relation.
- `relationLookupFieldId: String` Lookup field that defines the relation. Required when the relation is a lookup, and must be empty otherwise.
- `entityApiName: String` API name of the related custom entity. Set only when the related record type is a custom entity.
- `entity: ProcessEntityTemplate` Field values and operations applied to the record this node creates or updates.
- `triggerProcess: Boolean!` When true, the records affected by this node also start another process.
- `triggerProcessId: UUID` Process that the affected records start when triggering another process is enabled.
- `filter: FieldFilter` Optional condition that narrows which related records are updated. When omitted, all related records are updated.

### ProcessWebhook (object)

HTTP request a process sends: method, URL, body, authentication and headers.

- `requestType: ProcessWebhookRequestType!` HTTP method the webhook request is sent with: POST, GET, PUT, PATCH or DELETE.
- `url: String!` Target URL the webhook request is sent to. Must be an https address and may contain personalization tags.
- `requestFormat: ProcessWebhookRequestFormat!` Format of the request body: plain text, JSON or XML.
- `simpleContent: [String!]` Fields to include in the request body, given as field identifiers or personalization markers. Mutually exclusive with advanced content.
- `advancedContent: String` Free-form request body template with personalization tags. Mutually exclusive with simple content.
- `timeFormat: ProcessWebhookTimeFormat!` How date and time values in the request body are formatted: a Unix timestamp or an ISO 8601 string.
- `basicAuth: ProcessWebhookBasicAuth` Optional HTTP basic authentication credentials sent with the request.
- `headers: [ProcessWebhookHeader!]` Custom HTTP headers sent with the webhook request.

### ProcessWebhookBasicAuth (object)

HTTP basic authentication credentials sent with a process webhook request.

- `username: String` Username sent with the webhook request using HTTP basic authentication.
- `password: String` Password sent with the webhook request using HTTP basic authentication. Returned masked.

### ProcessWebhookHeader (object)

Custom HTTP header sent with a process webhook request.

- `key: String` Name of the HTTP header sent with the webhook request.
- `value: String` Value of the HTTP header. Returned masked when the header is marked as encrypted.
- `encrypted: Boolean` When true, the header value is stored encrypted and hidden in responses.

### ProcessWebhookRequestFormat (enum)

Format of the body of a webhook request.

- `Text` Plain text (text/plain).
- `JSON` JSON (application/json).
- `XML` XML (text/xml).

### ProcessWebhookRequestType (enum)

HTTP method a webhook action uses for its request.

- `POST` Sends the request with the HTTP POST method.
- `GET` Sends the request with the HTTP GET method.
- `PUT` Sends the request with the HTTP PUT method.
- `PATCH` Sends the request with the HTTP PATCH method.
- `DELETE` Sends the request with the HTTP DELETE method.

### ProcessWebhookTimeFormat (enum)

How dates and times are written in a webhook request body.

- `Timestamp` Unix timestamp in seconds.
- `ISO8601` ISO 8601 string.

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