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:
- Volume — how many tickets land per agent per day.
- Latency — how fast first-response and resolution happen.
- 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
- Inbound — an email lands at
support@your-domain.com. - 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_INBOUNDinteraction. - Notification — the on-call agent gets a webhook + in-app notification. SLA clock starts.
- Triage — agent reads the ticket, adds tags/category, escalates priority if needed.
- Response — agent replies via the ticket interface. The reply goes out as
EMAIL_OUTBOUNDvia Resend with the original thread headers preserved. - Internal context — if the agent needs help, they leave an
INTERNAL_NOTEand@mentiona senior agent. The customer never sees it. - Resolution — agent moves status to RESOLVED.
resolved_atstamps. A post-resolution CSAT form auto-sends. - Activity timeline — every state change appended to
task_activityfor 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_atis 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:
- Tier-1 agent (Member role) — handles the ticket, leaves internal notes.
- Tier-2 senior agent (Team role) —
@mentioned when tier-1 needs help. Has cross-customer visibility within the team. - 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
- BlueHill vs ClickUp — for teams using ClickUp as a makeshift help desk