Skip to main content
Glama

Update White Label Config

aidelly_update_white_label_config
Destructive

Update the agency's white-label branding, email settings, and visibility toggles. Returns the updated configuration with the current domain status. Custom domains are changed and verified in the Aidelly app, which validates domain ownership. Retry-safe: a repeat call with the same idempotency_key returns the original result.

Input Schema

NameRequiredDescriptionDefault
bodyNoOptional body override for endpoints with sparse parameter schemas.
queryNoOptional query overrides for endpoints with sparse parameter schemas.
brand_idNo
logo_urlNoLight-mode square logo URL.
hide_earnNoHide earnings/monetization surfaces from white-label clients.
brand_nameNoAgency brand name shown to white-label clients.
favicon_urlNoFavicon URL for branded pages.
support_urlNoURL to agency support/help page.
hide_rewardsNoHide rewards and gamification surfaces.
og_image_urlNoOpen Graph image for social shares.
workspace_idNoWorkspace to operate in: the `id` of a workspace returned by aidelly_list_workspaces. Optional for read operations; required when creating content.
dark_logo_urlNoDark-mode square logo URL. Falls back to logo_url if not set.
help_menu_urlNoURL for in-app help menu links.
primary_colorNoHex color for primary brand color (e.g.,
support_emailNoAgency inbox email for white-label support submissions.
watermark_urlNoWatermark image URL for reports.
email_from_nameNoFrom name for branded emails.
hide_tier_badgeNoHide tier/plan badges.
idempotency_keyYes
button_text_colorNoText/icon color on brand-colored buttons. 'auto' derives from luminance.
sidebar_logo_modeNoSidebar rendering mode — square mark+text or full logo image.
email_from_addressNoFrom email address for branded emails. Must be covered by one of your verified sending domains, or the request fails with 400 PUBLIC_API_WHITE_LABEL_SENDING_DOMAIN_UNVERIFIED. null clears it.
logo_text_font_urlNoCustom font URL for logo text in mark_text mode (must use https).
privacy_policy_urlNoPrivacy policy URL for branded emails and legal links.
saved_brand_presetNoOptional saved branding preset snapshot. Set to null to clear the preset; omit to leave alone.
watermark_settingsNoWatermark configuration object (null resets to defaults).
terms_of_service_urlNoTerms of service URL for branded emails and legal links.
hide_feature_requestsNoHide feature request UI.
logo_text_font_familyNoFont family name for logo text rendering.
logo_text_font_formatNoFont file format (woff2, woff, ttf, or otf).
sidebar_full_logo_urlNoLight-mode full sidebar logo URL (both mark and text).
show_oauth_interstitialNoWhether to show OAuth interstitial before social platform redirects.
ai_credit_alert_templatesNoYour own subject and body for AI credit alert emails sent under your brand (only on white-label sends from a verified sending domain). Per kind: an object sets the wording, null resets it to the built-in wording, and an omitted kind is left alone. null for the whole field resets every kind. Variables (any letter case): {{workspace}}, {{brand}}, {{allocation}}, {{spend}}, {{remaining}}, {{percent}}, {{threshold}}, {{reset_date}}, {{manage_url}} (billing owner only; empty for everyone else), {{support_url}}. Unknown variables are rejected.
sidebar_dark_full_logo_urlNoDark-mode full sidebar logo URL. Falls back to sidebar_full_logo_url if not set.
watermark_enabled_by_defaultNoWhether to include watermark on newly generated reports.
suppress_member_welcome_emailNoTri-state override for member welcome emails. null = use plan default, true/false = explicit override.
agency_staff_uses_custom_domainNoWhether agency staff access Aidelly at a custom domain.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / ai_credit_alert_templates
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Your own subject and body for AI credit alert emails sent under your\nbrand (only on white-label sends from a verified sending domain).\nPer kind: an object sets the wording, null resets it to the built-in\nwording, and an omitted kind is left alone. null for the whole field\nresets every kind. Variables (any letter case): {{workspace}},\n{{brand}}, {{allocation}}, {{spend}}, {{remaining}}, {{percent}},\n{{threshold}}, {{reset_date}}, {{manage_url}} (billing owner only;\nempty for everyone else), {{support_url}}. Unknown variables are\nrejected.\n",
      +  "nullable": true,
      +  "properties": {
      +    "shared_remainder_exhausted": {
      +      "nullable": true,
      +      "properties": {
      +        "body": {
      +          "description": "Plain-text body; a blank line starts a new paragraph. Variables allowed.",
      +          "maxLength": 2000,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "subject": {
      +          "description": "Single-line subject. Variables allowed.",
      +          "maxLength": 150,
      +          "minLength": 1,
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "subject",
      +        "body"
      +      ],
      +      "type": "object"
      +    },
      +    "workspace_allocation_reached": {
      +      "nullable": true,
      +      "properties": {
      +        "body": {
      +          "description": "Plain-text body; a blank line starts a new paragraph. Variables allowed.",
      +          "maxLength": 2000,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "subject": {
      +          "description": "Single-line subject. Variables allowed.",
      +          "maxLength": 150,
      +          "minLength": 1,
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "subject",
      +        "body"
      +      ],
      +      "type": "object"
      +    },
      +    "workspace_allocation_warning": {
      +      "nullable": true,
      +      "properties": {
      +        "body": {
      +          "description": "Plain-text body; a blank line starts a new paragraph. Variables allowed.",
      +          "maxLength": 2000,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "subject": {
      +          "description": "Single-line subject. Variables allowed.",
      +          "maxLength": 150,
      +          "minLength": 1,
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "subject",
      +        "body"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / email_from_address / description
      Previous value: -"From email address for branded emails (must use a verified sending domain)."New value: +"From email address for branded emails. Must be covered by one of your verified sending domains, or the request fails with 400 PUBLIC_API_WHITE_LABEL_SENDING_DOMAIN_UNVERIFIED. null clears it."
    • removedInput schema / properties / logo_text_font_license_attested_at
      Removed value: -{
      -  "description": "ISO timestamp when font license was attested.",
      -  "nullable": true,
      -  "type": "string"
      -}
    • removedInput schema / properties / logo_text_font_storage_path
      Removed value: -{
      -  "description": "Internal storage path for the uploaded font file.",
      -  "maxLength": 512,
      -  "nullable": true,
      -  "type": "string"
      -}
  2. Changed4 schema fields changed
    • addedInput schema / properties / idempotency_key / example
      Added value: +"order-123:create-post:v1"
    • addedInput schema / properties / idempotency_key / maxLength
      Added value: +255
    • addedInput schema / properties / idempotency_key / minLength
      Added value: +1
    • addedInput schema / properties / idempotency_key / pattern
      Added value: +"^[\\x21-\\x7E]{1,255}$"
  3. Changed1 schema field changed
    • changedInput schema / properties / workspace_id / description
      Previous value: -"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."New value: +"Workspace to operate in: the `id` of a workspace returned by aidelly_list_workspaces. Optional for read operations; required when creating content."
  4. Added

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and openWorldHint=true; the description adds real value with the return shape ('updated configuration with the current domain status'), the out-of-band domain verification workflow, and the idempotency_key retry contract. However, it never explains what makes this destructive — the schema's many 'null clears/resets' semantics — and the retry-safe claim sits in tension with idempotentHint=false, which an agent may read as conflicting rather than as key-scoped idempotency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with scope, then return value, then the domain caveat, then the retry contract. No filler. It could be tighter by folding the retry note into the same sentence as the idempotency_key requirement, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 37-parameter, nested-object mutation with no output schema, the description does cover return value and one critical precondition (verified sending domains are actually documented in the schema, not here). It omits the partial-update semantics — that omitted fields are left alone while explicit nulls clear or reset values — which is the single most important thing an agent needs to avoid data loss on this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 95%, so the parameter semantics are already carried by the schema (null-clears behavior, enum meanings, the PUBLIC_API_WHITE_LABEL_SENDING_DOMAIN_UNVERIFIED failure). The description names no specific field and adds only that domains are verified elsewhere. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (update) and enumerates the resource surfaces it covers: white-label branding, email settings, and visibility toggles. That is enough for an agent to know this is the write counterpart to aidelly_get_white_label_config. It stops short of distinguishing itself from aidelly_update_ai_credit_alert_settings, which the mention of 'email settings' partially overlaps with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance: nothing says to read first via aidelly_get_white_label_config, nothing says which of the 37 fields are safe to omit, and nothing routes the AI-credit-alert email wording to the sibling tool that owns it. The only conditional statement ('custom domains are changed and verified in the Aidelly app') is a constraint, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.