BrandKarma

upsert_content_guideline

Create or update a single per-language content guideline on the brand. Mode 'merge' (default) preserves omitted fields and dedups glossary entries by preferred term. Mode 'replace' overwrites the guideline wholesale with the supplied fields. Country fallback chain on read: (language+country) → (language with no country); there is no (language+otherCountry) fallback. Free-text fields ('formalityNotes', 'voiceNotes', 'styleNotes', 'formatRules') and glossary / banned-phrases entries are plain text — send literal characters, do not HTML-escape (no '&amp;', '&lt;', or '<tag>').

Remote Account required revuo:brandkarma-4084

Remote (network-hosted) · Requires an account with the vendor · OAuth

Other tools also called upsert_content_guideline? See providers with this name

Input Schema


            {
  "type": "object",
  "properties": {
    "brandId": {
      "description": "Brand ID (ObjectId)",
      "type": "string"
    },
    "language": {
      "description": "ISO language code, e.g. 'de', 'en', 'it'.",
      "type": "string"
    },
    "country": {
      "description": "Optional ISO country code for DACH-style splits, e.g. 'DE', 'AT'.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "formalityNotes": {
      "description": "Free-text formality guidance. Example: 'Use Sie throughout'. Plain text only.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "voiceNotes": {
      "description": "Free-text voice / tone descriptors. Plain text only.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "styleNotes": {
      "description": "Catch-all soft-prompting style instructions. Plain text only.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "glossary": {
      "description": "Glossary entries. Each entry has a required 'preferred' term, optional 'avoid' term, and optional 'notes'. In merge mode entries are upserted by 'preferred' (case-insensitive).",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "preferred": {
            "description": "Preferred term the brand uses (e.g. 'Niederlassung'). Required.",
            "type": [
              "string",
              "null"
            ]
          },
          "avoid": {
            "description": "Term to avoid in favor of 'preferred' (e.g. 'Filiale'). Optional.",
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "description": "Optional notes on why this term is preferred / when to apply it.",
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "default": null
    },
    "bannedPhrases": {
      "description": "Phrases the writer must never produce in this language (e.g. SaaS clichés, fourth-wall openers). In merge mode the supplied list is unioned with the existing entries (case-insensitive). Pass an empty list in replace mode to clear.",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "string",
          "null"
        ]
      },
      "default": null
    },
    "formatRules": {
      "description": "Optional free-text format rules specific to this language — number/date conventions beyond the defaults already in the prompt. Plain text only.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "mode": {
      "description": "'merge' to update only provided fields and merge glossary; 'replace' to overwrite wholesale. Default 'merge'.",
      "type": "string",
      "default": "merge"
    }
  },
  "required": [
    "brandId",
    "language"
  ]
}