Customer Segments
Group customers into named segments — by hand or by rules — to slice reports and trigger automations.
Availability — Included with any customer-facing module — Sales, Appointments, Rentals, or Inventory. Manage modules and your plan tier in Account & Billing.
A customer segment is a named group of customers. Use segments to slice your customer base for reporting and to drive automations — for example, email every customer who joins a "VIP" segment.
Manual vs. dynamic segments #
Each segment is one of two kinds:
- Manual — you choose the members yourself. Assign customers from the segment's form, or from the Segments field on a customer.
- Dynamic — membership is computed from rules. Customers join and leave automatically as their details change; you never edit the member list by hand.
A dynamic segment's rules are a list of conditions on customer fields (name,
email, payment terms, price list, billing city / state / country), combined by
all (every rule must match) or any (at least one). For example, billing
state is one of CA, NV, AZ builds a "Southwest" segment that maintains itself.
Membership is recomputed when you save the segment, when a customer is created or edited, and once daily as a safety net. You can also hit Recompute members on a dynamic segment at any time.
What segments drive #
- Reporting — the customer report dataset includes a Segments column, so you can show or group customers by the segments they belong to.
- Automation — the "Customer joins or leaves a segment" trigger fires
whenever membership changes (manual, dynamic, or via the API). Add a condition
on
segment_uuidto react to one specific segment, andchangeisaddedorremoved.
From the API #
Segments are fully scriptable under /api/v1/customer-segments (list, show,
create, update, delete). Manual membership is set with a customer_ids array;
dynamic segments take mode: "dynamic", a match_type of all/any, and a
rules array. A customer's segment membership is exposed as segment_ids on the
customer resource.
# A dynamic "California" segment
curl -X POST https://your-domain.com/api/v1/customer-segments \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "California",
"mode": "dynamic",
"match_type": "all",
"rules": [{ "field": "billing_state", "operator": "=", "value": "CA" }]
}'
# A manual segment with two members
curl -X POST https://your-domain.com/api/v1/customer-segments \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "name": "VIP", "mode": "manual", "customer_ids": ["<id-1>", "<id-2>"] }'