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

# entities.ghostLeadOpptyContactRelation

Read ghost lead oppty contact relation records with the ghostLeadOpptyContactRelation repository, and change them with the ghost lead oppty contact relation mutations. Same records as the REST GhostLeadOpptyContactRelations entity.

REST: [GhostLeadOpptyContactRelations](https://developers.coevera.com/reference/rest/ghost-lead-oppty-contact-relations.md).

## Queries

- `getById(entityId: ID!): GhostLeadOpptyContactRelationEntity` Returns the record with the given id, or null when there is none. Deleted records are returned as well.
- `getByIds(entityIds: [ID!]!): [GhostLeadOpptyContactRelationEntity!]!` 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: GhostLeadOpptyContactRelationFilterInput, orderBy: [GhostLeadOpptyContactRelationOrderByInput!], includeDeleted: Boolean): [GhostLeadOpptyContactRelationEntity!]!` Returns the records that match the filter, paged with limit and offset.
- `getByCriteria(filter: GhostLeadOpptyContactRelationFilterInput, orderBy: [GhostLeadOpptyContactRelationOrderByInput!], includeDeleted: Boolean, before: String, after: String, first: Int, last: Int): GhostLeadOpptyContactRelationEntityConnection` 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

- `createGhostLeadOpptyContactRelation(input: CreateGhostLeadOpptyContactRelationInput!, validationLevel: [ValidationLevel!]): CreateGhostLeadOpptyContactRelationPayload` Create one record.
- `updateGhostLeadOpptyContactRelation(input: UpdateGhostLeadOpptyContactRelationInput!, validationLevel: [ValidationLevel!], sessionIdToUpdate: String): UpdateGhostLeadOpptyContactRelationPayload` Update fields.
- `bulkUpdateGhostLeadOpptyContactRelation(input: [CreateOrUpdateGhostLeadOpptyContactRelationInput!]!, deleteInput: [DeleteGhostLeadOpptyContactRelationInput!], validationLevel: [ValidationLevel!], rollbackMethod: RollbackMethod, match: MatchingInput): BulkUpdateGhostLeadOpptyContactRelationPayload` Create or update many; per-item results.
- `deleteGhostLeadOpptyContactRelation(input: DeleteGhostLeadOpptyContactRelationInput!): DeleteGhostLeadOpptyContactRelationPayload` Soft-delete.

## Types

### GhostLeadOpptyContactRelationEntity (object)

Placement of a ghost contact on the org chart of a lead or an opportunity.

- `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.
- `ghostContact: GhostContactEntity` Placeholder ghost contact placed on the lead/opportunity org chart.
- `leadOpptyContactGroupRelation: LeadOpptyContactGroupRelationEntity` Org-chart group the ghost contact belongs to, when grouped.
- `lead: LeadEntity` Lead whose org chart includes the ghost contact. Set when leadOpptyId resolves to a Lead.
- `oppty: OpportunityEntity` Opportunity whose org chart includes the ghost contact. Set when leadOpptyId resolves to an Opportunity.
- `comment: String` Free-text comment shown on the org-chart node.
- `ghostContactId: ID!` Id of the ghost contact placed on the lead/opportunity org chart.
- `leadOpptyContactGroupRelationId: ID` Id of the parent org-chart group.
- `leadOpptyId: ID!` Id of the linked lead or opportunity.
- `positionInGroup: JSONString` Org-chart layout position of the ghost contact within its group, as a JSON object {"x": <int>, "y": <int>}.
- `revision: Int` Revision when entity was lastly changed.
- `salesRoles: GhostLeadOpptyContactSalesRoleRelationEntityConnection (8 args)` Sales roles assigned to the ghost contact on this lead/opportunity.
- `instancePermissions: [EntityPermsEnum!]! (1 args)` Permissions the current user has on this record, out of the requested ones.

### GhostLeadOpptyContactRelationEntityConnection (object)

Paginated list of GhostLeadOpptyContactRelation records.

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

### GhostLeadOpptyContactRelationEntityEdge (object)

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

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

### GhostLeadOpptyContactRelationFilterInput (input)

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

- `OR: [GhostLeadOpptyContactRelationFilterInput!]` Matches records that meet at least one of the listed filters.
- `AND: [GhostLeadOpptyContactRelationFilterInput!]` Matches records that meet all of the listed filters.
- `NOT: GhostLeadOpptyContactRelationFilterInput` 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.
- `comment: EntityFilterStringField` Free-text comment shown on the org-chart node.
- `ghostContactId: EntityFilterStringField` Id of the ghost contact placed on the lead/opportunity org chart.
- `leadOpptyContactGroupRelationId: EntityFilterStringField` Id of the parent org-chart group.
- `leadOpptyId: EntityFilterStringField` Id of the linked lead or opportunity.
- `revision: EntityFilterNumberField` Revision when entity was lastly changed.
- `ghostContact: GhostContactFilterInput` Placeholder ghost contact placed on the lead/opportunity org chart. Matches records where a related record meets these conditions.
- `leadOpptyContactGroupRelation: LeadOpptyContactGroupRelationFilterInput` Org-chart group the ghost contact belongs to, when grouped. Matches records where a related record meets these conditions.
- `lead: LeadFilterInput` Lead whose org chart includes the ghost contact. Set when leadOpptyId resolves to a Lead. Matches records where a related record meets these conditions.
- `oppty: OpportunityFilterInput` Opportunity whose org chart includes the ghost contact. Set when leadOpptyId resolves to an Opportunity. Matches records where a related record meets these conditions.
- `salesRoles: GhostLeadOpptyContactSalesRoleRelationFilterInput` Sales roles assigned to the ghost contact on this lead/opportunity. Matches records where a related record meets these conditions.

### GhostLeadOpptyContactRelationOrderByInput (input)

Sorting of GhostLeadOpptyContactRelation 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.
- `ghostContact: [GhostContactOrderByNestedInput!]` Placeholder ghost contact placed on the lead/opportunity org chart. Sorts by fields of the related record, listed in order of priority.
- `leadOpptyContactGroupRelation: [LeadOpptyContactGroupRelationOrderByNestedInput!]` Org-chart group the ghost contact belongs to, when grouped. Sorts by fields of the related record, listed in order of priority.
- `lead: [LeadOrderByNestedInput!]` Lead whose org chart includes the ghost contact. Set when leadOpptyId resolves to a Lead. Sorts by fields of the related record, listed in order of priority.
- `oppty: [OpportunityOrderByNestedInput!]` Opportunity whose org chart includes the ghost contact. Set when leadOpptyId resolves to an Opportunity. Sorts by fields of the related record, listed in order of priority.
- `comment: OrderByEnum` Free-text comment shown on the org-chart node.
- `ghostContactId: OrderByEnum` Id of the ghost contact placed on the lead/opportunity org chart.
- `leadOpptyContactGroupRelationId: OrderByEnum` Id of the parent org-chart group.
- `leadOpptyId: OrderByEnum` Id of the linked lead or opportunity.
- `revision: OrderByEnum` Revision when entity was lastly changed.

### CreateGhostLeadOpptyContactRelationInput (input)

Field values of a new GhostLeadOpptyContactRelation 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.
- `ghostContact: CreateGhostContactInput!` Placeholder ghost contact placed on the lead/opportunity org chart.
- `leadOpptyContactGroupRelation: CreateLeadOpptyContactGroupRelationInput` Org-chart group the ghost contact belongs to, when grouped.
- `comment: String` Free-text comment shown on the org-chart node.
- `ghostContactId: ID!` Id of the ghost contact placed on the lead/opportunity org chart.
- `leadOpptyContactGroupRelationId: ID` Id of the parent org-chart group.
- `leadOpptyId: ID!` Id of the linked lead or opportunity.
- `positionInGroup: JSONString` Org-chart layout position of the ghost contact within its group, as a JSON object {"x": <int>, "y": <int>}.
- `revision: Int` Revision when entity was lastly changed.
- `salesRoles: [CreateGhostLeadOpptyContactSalesRoleRelationNoGhostLeadOpptyContactRelationBackrefInput!]` Sales roles assigned to the ghost contact on this lead/opportunity.

### CreateGhostLeadOpptyContactSalesRoleRelationNoGhostLeadOpptyContactRelationBackrefInput (input)

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

- `modified: DateTime` Last modification time.
- `created: DateTime` Creation time.
- `salesRoleId: ID!` Id of the sales role assigned to the ghost contact.
- `revision: Int` Revision when entity was lastly changed.

### CreateOrUpdateGhostLeadOpptyContactRelationInput (input)

Field values of a GhostLeadOpptyContactRelation 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.
- `ghostContact: CreateGhostContactInput` Placeholder ghost contact placed on the lead/opportunity org chart.
- `leadOpptyContactGroupRelation: CreateLeadOpptyContactGroupRelationInput` Org-chart group the ghost contact belongs to, when grouped.
- `comment: String` Free-text comment shown on the org-chart node.
- `ghostContactId: ID` Id of the ghost contact placed on the lead/opportunity org chart.
- `leadOpptyContactGroupRelationId: ID` Id of the parent org-chart group.
- `leadOpptyId: ID` Id of the linked lead or opportunity.
- `positionInGroup: JSONString` Org-chart layout position of the ghost contact within its group, as a JSON object {"x": <int>, "y": <int>}.
- `revision: Int` Revision when entity was lastly changed.
- `salesRoles: [CreateGhostLeadOpptyContactSalesRoleRelationNoGhostLeadOpptyContactRelationBackrefInput!]` Sales roles assigned to the ghost contact on this lead/opportunity.

### DeleteGhostLeadOpptyContactRelationInput (input)

Id of the GhostLeadOpptyContactRelation 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.
- `leadOpptyId: ID` Id of the linked lead or opportunity.

### UpdateGhostLeadOpptyContactRelationInput (input)

Id of a GhostLeadOpptyContactRelation 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.
- `ghostContact: CreateGhostContactInput` Placeholder ghost contact placed on the lead/opportunity org chart.
- `leadOpptyContactGroupRelation: CreateLeadOpptyContactGroupRelationInput` Org-chart group the ghost contact belongs to, when grouped.
- `comment: String` Free-text comment shown on the org-chart node.
- `ghostContactId: ID` Id of the ghost contact placed on the lead/opportunity org chart.
- `leadOpptyContactGroupRelationId: ID` Id of the parent org-chart group.
- `leadOpptyId: ID` Id of the linked lead or opportunity.
- `positionInGroup: JSONString` Org-chart layout position of the ghost contact within its group, as a JSON object {"x": <int>, "y": <int>}.
- `revision: Int` Revision when entity was lastly changed.
- `salesRoles: [CreateGhostLeadOpptyContactSalesRoleRelationNoGhostLeadOpptyContactRelationBackrefInput!]` Sales roles assigned to the ghost contact on this lead/opportunity.

### BulkUpdateGhostLeadOpptyContactRelationPayload (object)

Result of the bulkUpdateGhostLeadOpptyContactRelation mutation.

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

### CreateGhostLeadOpptyContactRelationPayload (object)

Result of the createGhostLeadOpptyContactRelation mutation.

- `ghostLeadOpptyContactRelation: GhostLeadOpptyContactRelationEntity` 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).

### DeleteGhostLeadOpptyContactRelationPayload (object)

Result of the deleteGhostLeadOpptyContactRelation mutation.

- `ghostLeadOpptyContactRelation: GhostLeadOpptyContactRelationEntity` 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).

### UpdateGhostLeadOpptyContactRelationPayload (object)

Result of the updateGhostLeadOpptyContactRelation mutation.

- `ghostLeadOpptyContactRelation: GhostLeadOpptyContactRelationEntity` 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).

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