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:

  1. Explicit request - if the API request includes a profile field, that profile is used
  2. User default - if no profile is specified, the user's configured default profile is used
  3. Workspace default - if the user has no default, the workspace-wide default profile is used
  4. 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 -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.