Skip to content
Help Center home
InboxAsk a human

How to create label types via the API that Plain AI will not auto-assign

Set isExcludedFromAi to true when you create the label type. The createLabelType mutation accepts this boolean field. When it is true, Plain AI never assigns that label to a thread automatically, even when auto-labeling is on for the workspace. The field defaults to false, so any label type created without it can be auto-assigned.

Create a label type with AI assignment disabled

Pass isExcludedFromAi: true in the CreateLabelTypeInput:

mutation createLabelType($input: CreateLabelTypeInput!) { createLabelType(input: $input) { labelType { id name isExcludedFromAi } error { message type code } } }
{ "input": { "name": "incident-2024-01-15", "icon": "tag", "color": "#FF0000", "isExcludedFromAi": true } }

Required permission: labelType:create.

Update an existing label type

Use updateLabelType with the same field to turn AI assignment on or off for a label type that already exists. The field uses Plain's optional-input wrapper, so pass it as an object:

{ "input": { "labelTypeId": "lt_01HB924PME9C0YWKW1N4AK3BZA", "isExcludedFromAi": { "value": true } } }

Required permission: labelType:edit.

How Plain AI uses the flag

When auto-labeling runs on a new thread, Plain AI ignores every label type where isExcludedFromAi is true and never suggests them. Team members can still apply those labels manually, and workflows can still apply them automatically.

This is useful for labels created by another system, such as incident labels, that need to exist in Plain for routing or filtering but should never be assigned by Plain AI.