Skip to main content
IntermediateAnalytics and Reporting

Reply Intelligence

Classify every inbound email with AI-driven intent, sentiment, urgency, and objection typing, then route replies automatically or surface them to reps.

9 min read
Updated April 23, 2026
2,100 words

Every inbound email in NimbusOS is classified by intent, sentiment, urgency, and objection type within seconds of arrival. The classifier decides whether a reply is an interested prospect, a vacation auto-responder, a polite decline, a pricing objection, a referral, or a spam complaint. Auto-routing rules then move the reply to the right inbox, fire a Slack notification, or halt the sequence. This article covers the classification model, the category definitions, the auto-routing logic, and the override workflow when the model is wrong.

What Gets Classified

Two event types flow into reply intelligence.

Inbound replies to outbound campaigns. The prospect replied to one of your sends. Classified on arrival.

Complaint and bounce notifications. Inbound messages from ISP feedback loops or MTA daemons. Flow through a separate but related pipeline.

Both produce a classification with a confidence score.

The Classification Categories

Ten intent categories cover the typical reply surface.

interested. The prospect expressed clear interest. Wants to learn more, book a meeting, or engage further. Highest-value category.

not_interested. The prospect declined. May be polite or abrupt. Either way, the sequence stops and the contact is marked for potential re-engagement in 6 months.

objection. The prospect raised a concern. Sub-categorized into price, timing, authority, need, competition, or other.

ooo. Out-of-office auto-reply. The platform parses the return date and reschedules the sequence to fire after the return.

bounce. Inbound bounce notification. Handled by bounce intelligence.

question. The prospect asked a specific question rather than expressing interest or declining. Usually routed to a human for a tailored response.

meeting_request. The prospect asked to meet or scheduled. Highest-priority routing.

positive_reply. General positive response without an explicit meeting request or question. Treated similar to interested but lower confidence.

negative_reply. Unhappy or aggressive response. May indicate list quality or copy problem. Pauses the sequence, flags for review.

neutral. Acknowledged the email without expressing interest or objection. "Thanks for reaching out, we'll consider it" style.

spam. The prospect marked or explicitly declared the email as spam. Triggers immediate suppression and feeds spam forensics.

Confidence Scoring

Every classification includes a confidence score from 0 to 1. The model outputs the score as part of its response.

  • Above 0.85: High confidence. Auto-routing fires without review.
  • 0.65 to 0.85: Medium confidence. Auto-routing fires for low-risk actions only (rescheduling an OOO, marking interested).
  • Below 0.65: Low confidence. Surfaced in the unified inbox with a "review classification" flag. Human confirms or corrects.

Corrections feed back into the model through a human-in-the-loop labeling pipeline. A workspace that consistently overrides the model's classifications contributes to the fine-tuning.

Objection Type Detail

When a reply is classified as objection, a sub-classifier identifies the specific objection type.

Price. "Your pricing is too high." "We don't have budget for this."

Timing. "Not right now." "Maybe in six months." "Checking back in Q3."

Authority. "I'm not the right person." "Let me connect you with someone." (Often overlaps with referral.)

Need. "We don't need this." "We already have something that works."

Competition. "We use Vendor X." "We're already committed to another provider."

Other. Everything else.

Objection type drives follow-up strategy. A price objection triggers a sub-sequence that sends case studies with ROI. A timing objection triggers a re-engagement flow scheduled for the specified timeframe.

Auto-Routing Rules

Auto-routing is configurable in Account Settings. Default rules:

interested or meeting_request at confidence > 0.8. Forward to the rep inbox. Fire Slack notification to the sales channel. Pause the sequence. Flag the contact as hot.

ooo with return date. Pause the sequence. Schedule the next step to fire one business day after the return date. Update OOOContact model with the dates.

bounce hard. Suppress the contact. Update verification_status to invalid. No further routing needed.

not_interested. Pause the sequence. Mark the contact for re-engagement in 180 days.

objection type price. Enroll in the price objection sub-sequence. Original sequence pauses.

spam. Global suppression. Pause the sequence. Fire critical alert for the campaign.

low confidence everything. Surface in the unified inbox for human review.

Custom Routing Rules

Workspaces can add custom rules that run after the defaults. Common custom rules:

Hot lead Slack DM. When a reply is interested with confidence > 0.9 and the contact has ICP tier A, send a Slack DM to the account owner (not the channel).

Competitor mention notification. When a reply mentions a specific competitor (configurable keyword list), fire a notification to the product team.

Executive-to-executive replies. When a reply comes from a C-level contact, auto-forward to the workspace owner.

Custom rules are defined in the Automation page and reference the reply classification plus contact fields.

The Unified Inbox

Classified replies land in the unified inbox at /unified-inbox. The inbox is segmented by category with default views for:

  • Hot (interested + meeting_request)
  • Needs reply (question + medium-confidence anything)
  • OOO
  • Low confidence (needs human classification)
  • Unsubscribed
  • All

The hot view is where reps live during working hours. A direct Slack notification on hot replies means the rep does not need to actively check the inbox.

Reply Timing Analytics

Beyond per-reply classification, the platform aggregates reply timing signals.

  • Time to first reply (from send to reply)
  • Distribution of replies by hour of day (recipient local)
  • Reply rate decay across sequence steps
  • Reply rate by ICP tier

The timing analytics feed send time optimization. Contacts whose reply history shows morning replies get future sends scheduled for morning.

Reply Intent Training Data

The classifier runs on top of the hyper personalization stack with an in-house fine-tuned instruction. Training data is a mix of:

  • Labeled B2B outreach replies from NimbusOS's own outreach (dogfood data)
  • Platform-wide human-corrected classifications
  • External public B2B communication datasets

Training updates monthly. The classifier version number and trained-at date are visible in Account Settings.

Manual Classification Override

When the model gets a reply wrong, a human override adjusts it. Open the reply in the unified inbox and change the intent. The original classification is logged along with the override.

Overrides are fed back into the training loop. A workspace with many overrides of the same type (for example, replies the model marks neutral but the human marks interested) will see model behavior adjust over time.

Auto-Reply vs Auto-Routing

Important distinction. NimbusOS auto-routes. It does not auto-reply.

When a prospect replies with "interested", the sequence pauses and a notification fires. A human drafts the next message. The platform does not generate a reply on behalf of the rep.

This is deliberate. AI-generated replies to interested prospects read poorly and erode the rapport that earned the reply. A human response is worth the extra minute.

The exception is out-of-office acknowledgments. The platform will not send an acknowledgment back; it just reschedules the sequence.

Multi-Language Support

The classifier supports English, Spanish, French, German, Portuguese, Dutch, and Italian at production quality. Other languages fall back to English translation before classification, which works reasonably but with lower confidence.

Language is auto-detected per reply. You can see the detected language in the reply detail.

Integration with the Campaign Flow

Reply intelligence integrates at three points.

Sequence stop conditions. The default stop condition is "stop if replied", which fires on any reply regardless of classification. You can override to "stop if interested" for campaigns where nurture replies should continue the sequence.

Sub-sequence triggers. Objection types drive sub-sequence enrollment automatically. Build an objection handler sub-sequence once; it fires on any matching objection.

Campaign-level alerts. A campaign with an unusually high negative reply rate fires an alert. The alert is a signal the campaign copy or targeting is off.

Spam Complaint Handling

Spam complaints are treated as critical events.

On classification as spam:

  • The contact is globally suppressed.
  • The campaign complaint rate is recalculated.
  • If complaint rate exceeds threshold, the campaign auto-pauses.
  • A critical alert fires to the deliverability team.
  • The complaint feeds spam forensics for content analysis.

Spam complaints are the single highest-severity reply event. Do not dismiss.

Troubleshooting

"Reply is in the wrong category"

Override it. The model improves from corrections. If you see a consistent misclassification pattern, check the reply content; sometimes the pattern is real and the category definition just does not match your business.

"OOO reply did not reschedule the sequence"

The parser did not find a return date. Check the reply detail for the parsed return date. Some OOO messages use dates in an ambiguous format ("back next week" rather than "back on April 30"); the parser conservatively does not reschedule when ambiguous.

"High-confidence interested reply did not fire the Slack notification"

The routing rule is not configured. Check Account Settings for the rule definition. The default enables Slack but requires a workspace webhook URL.

"Objection type is wrong"

The sub-classifier has lower confidence than the top-level intent. Override the objection type. If the pattern is consistent, feedback is appreciated.

Frequently Asked Questions

Can the classifier run on historical reply data?

Yes. A backfill job re-classifies historical replies with the current model. Useful after a major model update or when moving from manual classification to AI-driven.

Is the classifier running on my data only, or aggregated?

The classifier runs per reply with workspace isolation. No cross-workspace sharing of reply content. Aggregate classification statistics (accuracy by category, common patterns) feed back into training with contributing workspaces' consent.

How fast is classification?

Under 5 seconds from reply arrival to classification written. Auto-routing actions fire within 10 to 30 seconds.

Can I export classified replies for external analysis?

Yes, from the Reply Intelligence page or via API. Export includes the reply body, intent, confidence, sub-classifications, and applied routing actions.

Useful next pages after this one: Campaign Analytics for reply rate and intent in campaign context, Dashboard Overview for reply distribution across the workspace, and Sequence Builder for sub-sequences that fire on objection types.

Related articles

Still stuck?

Our team answers every support ticket. If the answer is not in the docs, open a ticket and we will write the missing page.