Skip to content
v0.3

customer_cluster.create

Create a customer cluster: a named group of customers filled by a declarative rule, by pinned members, or by both. A promotion conditions on the cluster — this is how customer data reaches price without a custom field ever feeding a kernel calculation. INTERNAL: a cluster name never reaches the storefront.

  • Scope: customer.admin.write
  • System: no
  • Reachable from: POST /v1/commands/customer_cluster.create (tenant credential) · MCP tool customer_cluster.create · SDK client.call('customer_cluster.create', …)
  • Events: customer_cluster.created
{
"properties": {
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"match": {
"enum": [
"all",
"any"
],
"type": "string"
},
"name": {
"minLength": 1,
"type": "string"
},
"rule": {
"items": {
"properties": {
"attribute": {
"minLength": 1,
"type": "string"
},
"operator": {
"enum": [
"is",
"starts_with",
"contains",
"eq",
"gt",
"lt",
"between",
"is_one_of",
"before",
"after",
"more_than_days_ago",
"less_than_days_ago"
],
"type": "string"
},
"value": {}
},
"required": [
"attribute",
"operator",
"value"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"name"
],
"type": "object"
}
{
"additionalProperties": false,
"properties": {
"cluster_id": {
"type": "string"
}
},
"required": [
"cluster_id"
],
"type": "object"
}

validation_failed (400) · unauthorized (401) · forbidden (403) · conflict (409) · internal (500)