Profiles
Profiles let you run decisions against different sets of context, policies, and confidence thresholds. Instead of one global configuration for your workspace, you can create named configurations - one per team, product line, customer segment, or use case - and route decisions to the right one.
Each workspace has a default profile. Decisions that don't specify a profile use it automatically.
Why use profiles
Without profiles, all decisions in a workspace share the same context. This works well for small teams or single-use deployments. As your usage grows, you'll often need different rules for different situations:
- A customer support team and an engineering team using the same workspace but needing different tone, policies, and escalation thresholds
- Multiple clients routed through a single workspace, each requiring their own set of policies and context
- A staging configuration that mirrors production but with lower confidence thresholds for testing
- A high-risk profile with tighter controls applied to financial or compliance decisions
Profile resolution
When a decision request comes in, DelegateZero resolves which profile to use in this order:
- Explicit request - if the API request includes a
profilefield, that profile is used - User default - if no profile is specified, the user's configured default profile is used
- Workspace default - if the user has no default, the workspace-wide default profile is used
- Workspace-wide context - if no default profile exists, the decision runs against all context entries not scoped to any profile
Context scoping
Context entries (policies, precedents, playbooks, etc.) can be scoped to one or more profiles. An entry with no profiles assigned is workspace-wide and applies to all decisions regardless of profile. An entry assigned to specific profiles only applies when one of those profiles is active.
To assign a context entry to profiles, go to Profiles in the sidebar and find the entry in the Context table. Click Assign to select which profiles it should apply to. Leaving all checkboxes empty makes the entry workspace-wide.
Profile inheritance
Profiles can inherit from a parent profile. A child profile uses all of the parent's policies, precedents, and playbooks in addition to its own. You can use this to create a base configuration and extend it for specific use cases without duplicating entries.
Confidence threshold overrides work the same way - a child profile can override the threshold while inheriting everything else from its parent.
User access
Workspace owners can see and manage all profiles. Admins and members only see profiles they have been assigned to. Assigning a user to a profile is done from Profiles > Users on the profile row.
When a user with an assigned default profile makes a decision request, that profile is resolved automatically - no API change required.
Specifying a profile in the API
To route a decision to a specific profile, include the profile field in your request body. The value is the profile's slug - the URL and API-safe identifier shown in the Profiles table.
Field
Type
Values
Definition
profile
string
profile slug
The slug of the profile to run this decision against. If omitted, the user's default profile or workspace default is used.
cURL
Node.js
Python
curl -X POST https://delegatezero.com/api/v1/decisions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"profile": "cs-team",
"request": "Respond to this refund request from a customer.",
"context": {
"data": "Hi, I bought this 3 weeks ago and it stopped working."
}
}'
import axios from "axios";
const decision = await axios.post(
"https://delegatezero.com/api/v1/decisions",
{
profile: "cs-team",
request: "Respond to this refund request from a customer.",
context: {
data: "Hi, I bought this 3 weeks ago and it stopped working."
}
},
{
headers: {
Authorization: `Bearer ${process.env.API_KEY}`
}
}
);
import requests
import os
response = requests.post(
"https://delegatezero.com/api/v1/decisions",
headers={
"Authorization": "Bearer {os.environ['API_KEY']}",
"Content-Type": "application/json"
},
json={
"profile": "cs-team",
"request": "Respond to this refund request from a customer.",
"context": {
"data": "Hi, I bought this 3 weeks ago and it stopped working."
}
}
)If you specify a profile that you are not assigned to, the request will return a 403 error. Workspace owners can access any profile.
Managing profiles
Profile management is available to workspace owners from the Profiles page. From there you can create, edit, and archive profiles, assign users, manage context scoping, and configure parent profile inheritance.
Profiles are available on the Core plan and above. The workspace default profile is always present and cannot be archived.
Judgment Profiles - snapshots
On the Team plan and above, each profile has a Snapshots tab. A snapshot is a versioned, immutable record of a profile's full context and behavioral patterns at a point in time. Snapshots can be shared publicly via a link, and imported into other workspaces to seed context. See Judgment Profiles for full documentation.
There are no results for that search on this page, however, if you press the enter key then our entire documentation will be searched and you will receive the results. If you need assistance, please contact us.