Skip to main content
This is Moonbounce’s label-first experience. If you’re looking for the policy-first experience, switch using the version selector above.
Signals are the words, phrases, and questions you write inside a label to tell Moonbounce what to look for in content. In the label editor you compose rules from signals and conditions (such as ANY, AND, or exact match). Together they define when your label should match.

What is a signal?

A signal is a quoted phrase (or question) that names a concept you want the system to evaluate — for example "graphic violence" or "spammy promotional language".
  • Signals are always wrapped in double quotation marks.
  • A signal can be a single word or multiple words.
  • Signals are not case-sensitive.
  • A rule combines one or more signals with optional conditions. If any rule in the label matches, the label matches.
Simple rules can be a single signal on its own line:
That tells the system to evaluate whether the content matches the concept described by that phrase.

Rules, conditions, and signal lists

Most labels use conditions to combine signals: Parentheses group expressions. Separate rules with a newline or a comma.

Connecting signals with ANY and AND

This matches when any of the first three concepts appears together with content that matches "directed at person".

Exact and fuzzy literal matches

Use exact match when you need specific terms to appear as written (ignoring case):
Use fuzzy match when you want to catch spelling variants or leetspeak:

Sentiment

Questions

Append ? after the closing quote to ask a yes/no question about the content:

Exceptions with UNLESS

Use UNLESS to carve out exceptions for the label. The block applies to the label you are editing:
Content that matches an UNLESS rule should not cause the label to match, even when other rules would have matched.

Comments

Add comments with #. Everything after # on that line is ignored:

A fuller example

Good vs. weak signals

Strong signals describe what you mean in plain language the model can interpret:
Weak signals are vague single words that leave too much room for interpretation:
Prefer specific, testable phrasing — then use your label’s dataset to confirm the behavior you want.

Common mistakes

The editor validates your draft as you work and surfaces syntax errors with line numbers when something cannot compile.

Policy-first vs. label-first syntax

The policy-first experience supports a broader policy language (including context operators like "drugs" [IN REFERENCE TO] "selling", PRIORITY chains, and multiple LABEL blocks in one policy). That syntax is documented under Policy Reference in the version selector. The label-first editor uses grammar version 3: one label body, the conditions listed on this page, and UNLESS blocks — but not context operators, PRIORITY, or SECTION.

General Policy Syntax

Full policy language reference (policy-first experience).

Creating Rules

Deeper guide to conditions and rule patterns.

Where to next

Building with Labels

The craft → test → publish → integrate loop.

Labels, Versions & Datasets

Drafts, published versions, immutability, and test data.

We’d Love to Hear From You

Whether you have a suggestion, feedback, or a bug to report, here are the best ways to get in touch:
  • In the App: Use the Feedback button for direct suggestions.
  • On Slack: Reach out to the team in your shared channel.
  • With your AM: Talk to your dedicated account manager.
  • Via Email: Send a message to support@moonbounce.io.
  • Security, availability, or other incidents: Use the in-app Feedback button or email support@moonbounce.io. See Customer Feedback for what to include.