Labels
What are Labels?
Labels are simple, string-based tags that you can attach to your Messages and Threads. They are the primary mechanism for organizing, categorizing, and managing the state of your conversations, whether its automatically bucketing threads into specific categories for your outbound campaign, to segmenting warm leads for your outreach, to categorizing inbound into low-ticket, medium-ticket, high-ticket customers.
A Message can have multiple Labels, allowing you to create a flexible and powerful system for managing complex workflows.
Use Cases for Labels
By strategically applying Labels, you can build sophisticated agent systems. Here are a few common use cases:
State Management
Use Labels to track the state of a conversation. For example, an agent
could apply needs-human-review when it’s unsure how to respond, or a
supervisor could apply approved-to-send to a Draft.
Campaign Tracking
When running outbound campaigns, tag every Message with a unique campaign
Label like q4-2024-outreach, or mercor-campaign and adding a second
tag as warm-lead. This allows you to easily filter for and analyze the
performance of that specific campaign later on.
Automated Triage
An inbound agent can classify incoming Messages with Labels like
billing-question, feature-request, or bug-report, allowing specialized
agents or human teams to handle them efficiently.
Read/Unread Tracking
Use Labels to track which Messages your agent has already processed.
After handling a Message, add a read label and remove unread. Then
filter by labels=["unread"] to only fetch new messages — preventing your
agent from reprocessing the same emails. See Marking Messages as Read for code examples.
Core Capabilities
Here’s how you can programmatically work with Labels.
1. Adding Labels When Sending a Message
You can attach an array of Labels directly when you send a Message.
2. Adding or Removing Labels on an Existing Message
You can modify the Labels on a Message that has already been sent using the update (PATCH) method. This is perfect for changing the state of a conversation as your agent works on it.
3. Filtering by Labels
This is where Labels become truly powerful. You can list Threads, Messages, and Drafts by filtering for one or more Labels, allowing you to create highly targeted queries.
Copy for Cursor / Claude
Copy one of the blocks below into Cursor or Claude for complete Labels usage in one shot.
Best Practices
- Be Consistent: Establish a clear and consistent naming convention for your labels (e.g.,
kebab-case,snake_case). - Use Prefixes: For state management, consider using prefixes like
status-pendingorpriority-highto create an organized system. - Don’t Over-Label: While you can add many
Labels, aim for a concise and meaningful set to keep your system manageable.
Coming Soon: AI-Powered Auto-Labeling
We are actively developing an AI-powered auto-labeling feature. Soon, your
agents will be able to provide a set of Labels and instructions, and
AgentMail will automatically apply the correct Labels to incoming Messages
based on their content.
