Creating a thread is useful in scenarios where you want to programmatically start a support interaction.

You can do this in many different scenarios but the most common use-cases are when a contact form is submitted or when you want to provide proactive support off the back of some event or error happening in your product.

A thread is created with an initial ‘message’ composed out of UI components. You have full control over the structure and appearance of the message in Plain.

To create a thread you need a customerId. You can get a customer id by creating the customer in Plain first.

Since the Typescript SDK expands a lot of fields you will need an API key with the following permissions:

  • label:create
  • label:read
  • labelType:read
  • machineUser:read
  • customer:read
  • user:read
  • thread:create
  • thread:edit
  • thread:read
  • threadField:create
  • threadField:update
  • threadField:read

Where result.data is: