Auto-NPS console (Settings → NPS)
Auto-NPS is its own console at Settings → NPS, not a sub-tab of Settings → CSAT. This guide covers that page: why the NPS track is configured separately, what each control decides, the exactauto_nps settings block the page reads and writes, and where the answers land once they come in.
1. Why NPS gets its own console
CSAT and NPS measure different things on different scales — CSAT scores 1–5 satisfaction, NPS scores 0–10 loyalty — so the platform treats them as two independent tracks:- Own enable flag — you can pause NPS without touching CSAT, or run both.
- Own template slot — a close can arm an NPS survey and a CSAT survey in parallel; a single shared slot could only fire one.
- Own dispatch trigger — the NPS dispatcher polls closes stamped for NPS and sends after the NPS-specific delay, not the CSAT one.
- Own detractor bands and reporting — NPS answers classify against the 0–6 detractor band and roll up under the NPS columns of the scorecards, never under CSAT.
2. Prerequisites
You need an NPS-ready survey template before this console can fire anything — the picker lists your existing templates, and until one is selected every close skips the NPS arm silently. Author the template first withPOST /api/v1/surveys (type nps, csat, or ces all show up in the picker; NPS is the intended type here) as covered in surveys end to end. An empty template space is the one configuration mistake that produces an orphan console: the page saves fine, nothing dispatches.
3. Where it lives
Open Settings → NPS in the dashboard (owner or admin role). Everything on the page persists to one organization settings block (auto_nps), consumed by the close path when a conversation closes and by the one-per-minute dispatch sweep.
4. The auto_nps settings block
The console reads and writes a single auto_nps object under GET/PUT /api/v1/settings/general (see the settings API reference). The full block, with each field’s write-boundary rule:
The sibling
auto_csat block carries the same five fields plus two CSAT-only extras — a conditions matcher list and a detractor rescue block (its own csat key) — so set NPS independently and leave the CSAT block untouched. Both blocks survive one settings payload untouched.
PUT /settings/general carrying the updated auto_nps object. The write boundary clamps delay_minutes to 1–1440 and cooldown_days to 7–90, matching the console sliders. Invalid values get normalised on save rather than rejected, so a malformed slider can’t disable the cooldown (0) or fatigue-bomb a contact (way above 90).
5. Configure the page
Click Save changes; the button stays disabled until you modify a value.
6. How the channel is picked
Recipients are implicit: the survey goes to the contact on the closed conversation. The dispatcher resolves the channel in this order:- The conversation’s last-used channel — when the template allows it, the survey goes out on the same channel the close ran on.
- The first template-allowed channel the contact can be reached on — when the conversation’s own channel isn’t one the template lists (or the conversation carries a mixed channel history), the dispatcher walks the template’s allowed list in order until one matches a reachable address. A phone-capable channel needs a contact phone number; email needs a contact email.
- Skip deliberately — a close with no reachable channel is skipped and recorded as such, not retried.
7. Where the results land
Answered NPS surveys roll up with CSAT answers in the same surveys analytics, but under separate measures, so the two tracks never pollute each other’s averages:- Insights → Surveys — answered surveys attach to the survey, the contact, and the conversation that triggered them. Filter by the NPS template to trend loyalty separately from satisfaction.
- Scorecards (
GET /api/v1/surveys/scorecards) — passsurvey_type=npsto restrict the rollup to the NPS track. Each row reports annps(promoters minus detractors) andnps_responsesnext to the CSAT-only average.
Filter
survey_type=nps to read only NPS rows; the queue-level bucket (group_by=queue, default) or agent bucket (group_by=agent) groups the same rollup.
8. Related guides
- Auto-CSAT/NPS dispatch — the close-triggered dispatch mechanics (arming sequence, sweep cadence, channel-pick order, quiet-hours hold) for both tracks. Until this page existed, that guide was the only mention of auto-NPS; it treats NPS as a side bullet of the CSAT track, which this page disambiguates.
- CSAT and NPS settings consoles — the operator-facing map of both Settings pages, including per-conversation and per-queue overrides.
- Surveys end to end — manual, audience-targeted distribution; use it for a one-off NPS pulse to a segment instead of the close-triggered loop, and author the template this console needs.
- Settings API reference — the full
GET/PUT /settings/generalsurface this console sits on.