Skip to main content
Use case · Support engineers + support leads

BlueHill for support teams

How support teams run reactive ticket queues on BlueHill — SLA tracking, escalation paths, internal notes, CSAT surveys — without buying a separate help desk.

What support teams need, and why most tools half-deliver

A support team's job is bounded by three things:

  1. Volume — how many tickets land per agent per day.
  2. Latency — how fast first-response and resolution happen.
  3. Quality — CSAT, internal escalation rates, post-resolution churn.

Most support tools optimize one of these well. Few optimize all three without bolt-ons. BlueHill's bet: collapse the help desk, the internal-notes layer, the customer portal, the CSAT survey, and the time tracker into one record per customer — so context-switching disappears.

The Ticket model in plain English

Every support ticket on BlueHill is a Ticket record with:

  • A status drawn from a closed enum (OPEN, IN_PROGRESS, PENDING, WAITING_ON_CUSTOMER, RESOLVED, CLOSED)
  • A priority (low / medium / high / urgent)
  • One or more assignees
  • SLA fields: due_date, first_response_at, resolved_at, sla_breach_at
  • An email_thread_id so inbound replies thread cleanly
  • Tags + categories for routing and analytics
  • A source (email, portal, API, manual)
  • A link to the customer (auto-enriched on inbound)

The fact that this lives inline next to the customer's onboarding state, time entries, and full interaction history is the whole point — your agent sees the full account context before responding.

Reactive flow: an email arrives

  1. Inbound — an email lands at support@your-domain.com.
  2. Routing — BlueHill matches the sender to a customer (or creates one), creates a Ticket if no open thread exists, and attaches the email as an EMAIL_INBOUND interaction.
  3. Notification — the on-call agent gets a webhook + in-app notification. SLA clock starts.
  4. Triage — agent reads the ticket, adds tags/category, escalates priority if needed.
  5. Response — agent replies via the ticket interface. The reply goes out as EMAIL_OUTBOUND via Resend with the original thread headers preserved.
  6. Internal context — if the agent needs help, they leave an INTERNAL_NOTE and @mention a senior agent. The customer never sees it.
  7. Resolution — agent moves status to RESOLVED. resolved_at stamps. A post-resolution CSAT form auto-sends.
  8. Activity timeline — every state change appended to task_activity for audit + analytics.

SLA dashboards that don't lie

The SLA dashboard pulls directly from the activity log:

  • First-response rate — (tickets where first_response_at - created_at < SLA target) / total
  • Resolution rate — same math against resolved_at
  • Breach distribution — tickets where sla_breach_at is set, broken out by priority, by agent, by category

Because the math runs against the actual event log (not a separate SLA tracker), it's audit-proof. You can't fudge first-response by editing a spreadsheet — the event happened, or it didn't.

Internal notes — the support team's superpower

Support escalations are 50% about coordinating internally, not about talking to the customer. BlueHill's internal-notes layer (InteractionType.INTERNAL_NOTE) is filtered out of every customer-facing query.

Real examples support teams cite:

  • "Customer is on the legacy billing plan — be careful quoting new pricing"
  • "Engineering says this is a known issue, ETA tomorrow's release"
  • "This is the third ticket from them this month — let's get on a call"

These never leak. The filter is at the API layer, not the UI — it's not a "don't show this checkbox" toggle; the internal interactions never reach a portal query.

Escalation paths

Three layers, mapped to the role tiers:

  1. Tier-1 agent (Member role) — handles the ticket, leaves internal notes.
  2. Tier-2 senior agent (Team role)@mentioned when tier-1 needs help. Has cross-customer visibility within the team.
  3. Manager — full visibility across the support org, escalation owner for VIP customers, can reassign across teams.

The reassignment is logged. Time-to-escalation becomes a real metric.

CSAT — from form to analytics

After resolution, a form (your CSAT template) is sent. Customer rates 1-5 + free-text. The submission lands as a FormSubmissions row linked back to the ticket and customer.

Roll-up views:

  • Agent CSAT — average per agent
  • Category CSAT — which categories drive bad reviews
  • Trend — is CSAT improving month over month
  • Tickets with detractor responses — automatically flagged for manager review

A representative day

9am: queue review. Open the dashboard. 14 open tickets, 3 in WAITING_ON_CUSTOMER, 1 SLA-at-risk in the next 2 hours. Triage the at-risk one first.

10am-12pm: clear the queue. Most tickets resolve in 2-3 interactions. Internal notes capture decisions: "checked logs, reproduced, sent fix steps." Two tickets get @mentioned to engineering — the activity timeline records the handoff.

1pm: standup. The team dashboard shows yesterday's resolution rate, average first-response time, and any breached tickets. A 5-minute review surfaces the categories driving rework.

Afternoon: a customer escalates an outage. The Manager opens the customer record, sees the last six months of tickets, the active subscription, the executive sponsor on file. Calls the customer with full context — not "let me pull up your account."

End of day: log time entries (most auto-captured via the auto-stopwatch). The day's tickets are all in the activity log.

Outcomes teams report

After 90 days on BlueHill (averaged across teams switching from a separate help desk + a separate CSM tool):

  • First-response time: 4.2h → 1.6h
  • Resolution time (medium priority): 18h → 9h
  • CSAT: 4.1 → 4.5
  • Internal-note ratio (notes : customer replies): 0.7 → 1.6 (more team coordination, less leakage)
  • Tickets per agent per day: 22 → 31

Pricing for support teams

Most support teams land on Professional ($79/user/month) for SLA tracking, full status reports, CSAT forms, and the customer portal. Smaller teams (under 10 agents, mostly email-driven) can run on Starter ($29/user/month) and add the portal later.

See pricing · Read customer stories

What this replaces

Support teams arriving at BlueHill typically replace:

  • A help desk (Zendesk, Freshdesk, Intercom, Help Scout)
  • A CSAT survey tool (Delighted, SurveyMonkey)
  • A separate "internal handoff" channel (Slack DMs that lose context)
  • A spreadsheet for SLA tracking

The consolidation reduces tooling cost, but the bigger win is one customer record instead of four — agents stop tab-hopping.

See also