Message Tagging
Automatically detect and respond to specific types of user messages using AI-powered semantic matching
Message tags are one of the most powerful features in Chipp. They let you automatically detect specific types of messages and take action—whether that’s routing to a human, blocking harmful content, or tracking purchase intent.
What Can You Do with Tags?
Tags unlock a wide range of automation possibilities. Here are just a few:
🏷️ What Can You Do with Tags?
How Tag Detection Works
Unlike simple keyword matching, Chipp uses semantic similarity to understand the meaning behind messages. This means your tags will catch variations and paraphrases you never explicitly defined.
See Tag Detection in Action
Type a message and see which tags would be detected based on semantic similarity.
Demo uses pre-computed results for illustration
Why Semantic Matching Matters
Traditional keyword-based systems require you to anticipate every possible way someone might phrase a request. With semantic matching:
- “I want to talk to a human” matches “Can I speak with a real person?”
- “What’s the price?” matches “How much does this cost?”
- “I’m frustrated” matches “This is really annoying”
You define a few example phrases, and the AI understands the underlying intent.
Getting Started
Ready to set up your first tag? Follow this step-by-step guide:
Open the app where you want to configure message tags.
Click on "Tags" in the setup section to manage your tag definitions.
Create tags with names and descriptions. The AI uses descriptions to determine when to apply each tag.
Chat with your app and verify tags are applied correctly. Adjust descriptions as needed.
Tag Configuration Options
Each tag has several settings you can customize:
Tag Name
Give your tag a clear, descriptive name. You’ll see this in your analytics and when reviewing chat history, so make it easy to understand at a glance.
Good names: “Human Escalation”, “Pricing Question”, “Complaint” Bad names: “Tag 1”, “Important”, “Check”
Example Phrases
Add 3-5 phrases that represent the type of message you want to detect. The AI uses these to understand the semantic meaning, so focus on variety:
Good examples for "Human Needed":
- "I need to talk to a human"
- "Can I speak with a real person?"
- "Connect me to support"
- "I want to talk to someone"
Less effective (too similar):
- "Talk to human"
- "Speak to human"
- "Human please"
- "Get me a human"Detection Sensitivity
The sensitivity slider controls how closely a message must match your examples to trigger the tag:
| Sensitivity | Best For | Trade-off |
|---|---|---|
| Low (50-65%) | Catching all possible variations | More false positives |
| Medium (70-80%) | Balanced detection | Good starting point |
| High (85-95%) | Precise matching only | May miss variations |
Tip: Start at 75% and adjust based on what you see in your chat history.
Blocking Response (Optional)
For safety or compliance tags, you can replace the AI’s response entirely when a tag is detected. This is useful for:
- Harmful content: Block and provide a polite refusal
- Off-topic requests: Redirect to your app’s purpose
- Sensitive topics: Provide specific guidance or disclaimers
When you add a blocking response, the AI won’t generate anything—your exact text will be shown instead.
Best Practices
Start Small
Begin with 2-3 high-value tags rather than trying to cover every scenario. You can always add more as you learn what your users are asking.
Review Matches Regularly
Check your tag matches in the chat history to spot false positives and missed detections. This helps you tune your sensitivity and add better example phrases.
Use Specific Examples
The more specific and varied your example phrases, the better the detection. Generic phrases lead to more false positives.
Don’t Over-Block
Only use blocking responses when absolutely necessary. For most tags, it’s better to let the AI respond naturally while you track the conversation.
Common Tag Configurations
Here are some popular tag setups to get you started:
Customer Support Bot
| Tag | Purpose | Blocking? |
|---|---|---|
| Human Needed | Route frustrated users to support | No |
| Refund Request | Flag for manual review | No |
| Positive Feedback | Track happy customers | No |
Sales Assistant
| Tag | Purpose | Blocking? |
|---|---|---|
| Purchase Intent | Identify hot leads | No |
| Pricing Question | Track interest | No |
| Competitor Mention | Monitor positioning | No |
Knowledge Base
| Tag | Purpose | Blocking? |
|---|---|---|
| Off-Topic | Redirect to purpose | Yes |
| Complex Question | Flag for follow-up | No |
| Feedback | Collect suggestions | No |
Viewing Tag Analytics
Once your tags are active, you can see them in action:
- Chat History: Each message shows any tags that were detected
- Tag Detail View: Click on a tag to see all matches, sorted by recency
- Remove False Positives: Click the X on any incorrectly tagged message to improve future detection
Advanced Tips
Combine with Custom Actions
Use tags as triggers for more complex workflows. When a tag is detected, you could:
- Send a notification to Slack
- Create a ticket in your CRM
- Update a spreadsheet
- Trigger an email
Multiple Tags per Message
A single message can trigger multiple tags. For example, “I want a refund and need to speak to someone” might trigger both “Refund Request” and “Human Needed.”
Tag Categories
Organize related tags with consistent naming prefixes:
Support: Human NeededSupport: ComplaintSales: Pricing QuestionSales: Demo Request
Negative Examples: Teaching Tags What NOT to Match
By default, tags learn only from positive examples — phrases that should trigger. For most use cases this works well, but when your tag guards a hard compliance boundary (like “block external data comparisons” or “prevent off-label claims”), a legitimate message can look almost identical to a prohibited one.
When to Use Negative Examples
Negative examples are most valuable in three scenarios:
- Semantic Overlap: Your positive examples (“Compare our rate to published literature”) are semantically very similar to legitimate messages (“Compare our rate across patient subgroups”). Raising the sensitivity threshold alone can’t separate them.
- Compliance Boundaries: Tags that guard strict regulatory or safety rules where false negatives (missing a prohibited intent) are worse than false positives, but missed legitimate uses break user experience.
- Calibration Precision: You’ve tuned a tag with “Test a message” (see below) and consistently see one type of false positive that thresholds can’t filter.
How Negative Examples Work
Chipp’s semantic matching computes cosine similarity between an incoming message and all your tag’s examples—both positive and negative. A message triggers the tag if its best match (highest similarity to any example) beats the configured threshold.
Key insight: Negative examples compete directly against positive examples in the same semantic space. When a message is semantically close to both a positive and a negative example, the tag resolves toward whichever example it’s more similar to. This is why a couple of well-chosen negatives can improve precision where thresholds alone cannot.
Guardrail: If a message is equally similar to a positive and negative example (a tie), the tag triggers — fail-safe behavior. When in doubt, block.
Example: Pharma Compliance Boundary
A tag needs to block external/published-literature comparisons (“What is our rate compared to the published literature?”) while allowing legitimate cohort analyses:
Positive examples (must trigger):
- “How does our rate compare to published literature?”
- “What does the literature say about this rate?”
- “How do we stack up against industry benchmarks?”
Negative examples (must NOT trigger):
- “How does our rate differ across patient subgroups?”
- “Compare our rate between males and females in the cohort”
- “What’s the misdiagnosis rate in our patient population?”
With the negatives in place, the classifier learns that “compare … to literature/benchmarks/external” is the true signal, not comparison in general. Testing revealed that this fixture (6 prompts at 0.33 and 0.5 sensitivity thresholds) achieves clean separation only with negatives—thresholds alone catch either all positives and all negatives, or none of either.
Creating and Managing Negative Examples
- Open the tag editor and scroll to “NEGATIVE EXAMPLES · MUST NOT TRIGGER”
- Add 2-5 phrases that are similar to your positives but must never trigger
- Focus on the specific semantic boundary you’re guarding (e.g., “external comparisons” vs. “within-cohort comparisons”)
- Use “Test a message” (below) to validate that your negatives actually prevent false positives
- If separability still isn’t clean, add more negatives targeting the boundary, or split into more specific tags
Calibrating Tags with “Test a Message”
The “Test a message” panel in the tag editor lets you score any message against the tag in real-time, showing:
- Match score: Numeric similarity (0-1) to the closest example
- Threshold: Your configured sensitivity level
- Would trigger: Boolean outcome for this message
This is invaluable for calibration:
- Draft your positives and negatives, then test real prompts from your chat history
- If a legitimate message is scoring too high (near the threshold), add a negative example close to it
- If a prohibited message is scoring too low (missing true positives), refine your positive examples for more specificity
- Iterate until you see clean separation between intended positives and negatives
The test does not generate a response, mutate conversation state, or create a permanent record—it’s purely diagnostic.
Troubleshooting
Tags Aren’t Detecting Anything
- Lower your sensitivity threshold
- Add more varied example phrases
- Check that the tag is enabled
Too Many False Positives
- Raise your sensitivity threshold
- Make example phrases more specific
- Remove overly generic examples
Tags Detecting the Wrong Things
- Review your example phrases for unintended patterns
- Use negative examples — See the “Negative Examples” section above. This is especially effective for hard compliance boundaries where legitimate messages are semantically similar to prohibited ones.
- Test before deploying — Use “Test a message” (see “Calibrating Tags” above) to validate your positive/negative/threshold combination against real prompts before enabling the tag live.
- Raise your sensitivity threshold if you’re getting false positives on completely unrelated topics
- Consider splitting into more specific tags if you have multiple distinct intents
Next Steps
Now that you understand message tagging, try setting up your first tag:
- Think about what user messages you most want to detect
- Create a tag with 3-5 good example phrases
- Start at 75% sensitivity
- Monitor your chat history for a few days
- Tune based on what you observe
Tags become more valuable over time as you refine them based on real user interactions. Start simple, iterate often, and you’ll build a powerful automation layer for your AI app.
Using with MCP
You can manage tags programmatically using the Chipp MCP Server, including AI-powered utterance generation.
Available Tools
| Tool | Description |
|---|---|
list_tags | List all tags for an app |
create_tag | Create a new tag with utterances and actions |
update_tag | Update tag name, utterances, or actions |
delete_tag | Remove a tag |
list_tag_instances | View messages that matched a tag |
remove_tag_instance | Remove a false positive match |
generate_utterances | AI-generate training phrases for a tag |
Example Prompts
"Create a tag called 'pricing_intent' for my sales bot"
"Generate 200 utterances for detecting refund requests"
"Show messages that matched the 'human_needed' tag"
"Remove the false positive from tag instance xyz"Workflow: AI-Powered Tag Training
You: Create a tag for detecting pricing questions in my B2B sales bot
AI: [Calls create_tag]
Created tag "pricing_intent". Would you like me to generate
training utterances?
You: Yes, generate 200 varied examples for B2B software pricing
AI: [Calls generate_utterances with count=200, domain="B2B software"]
Generated 200 utterances including:
- "How much does your enterprise plan cost?"
- "What's the pricing for 100 users?"
- "Do you offer volume discounts?"
- "Is there a free trial available?"
...
Saved to tag "pricing_intent". The tag is now active.MCP server access requires a Builder plan or higher. See the MCP Setup Guide to get started.