Skip to main content

Documentation Index

Fetch the complete documentation index at: https://www.plain.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Using TypeScript? Check out our GraphQL SDK for a fully typed client.
An escalation path is a configured sequence of users or label-type owners that a thread escalates through when no-one is responding in time. Escalation paths themselves are configured in the Plain app under Settings → Escalation paths. The API lets you trigger an escalation programmatically and change which escalation path a thread is on. These operations require the following permissions:
  • thread:edit

Escalate a thread

escalateThread advances the thread to the next step in its current escalation path. If the thread doesn’t have an escalation path attached, the call returns an error.
Mutation
mutation escalateThread($input: EscalateThreadInput!) {
  escalateThread(input: $input) {
    thread {
      id
      assignedTo {
        __typename
        ... on User {
          id
          fullName
        }
      }
    }
    error {
      message
      type
      code
      fields {
        field
        message
        type
      }
    }
  }
}
Variables
{
  "input": {
    "threadId": "th_01H8H46YPB2S4MAJM382FG9423"
  }
}

Change the escalation path

Attach a thread to a specific escalation path (or pass escalationPathId: null to detach it).
Mutation
mutation updateThreadEscalationPath($input: UpdateThreadEscalationPathInput!) {
  updateThreadEscalationPath(input: $input) {
    thread {
      id
    }
    error {
      message
      type
      code
      fields {
        field
        message
        type
      }
    }
  }
}
Variables
{
  "input": {
    "threadId": "th_01H8H46YPB2S4MAJM382FG9423",
    "escalationPathId": "ep_01HXXXXXXXXXXXXXXXXXXXXXXX"
  }
}