Skip to main content
The Survey Agent is an agent template for surveying human reps. After a rep transfers a caller to it, it asks the few questions you configured, such as a satisfaction score or whether the issue was resolved, then says goodbye and ends the call. There is no survey report page in Telzino. The results go out as webhook events and, optionally, as a push to your CRM (see Sending results to a CRM). The caller speaks the answers, so they are also in the call’s transcript (see Privacy and HIPAA).
The rep must transfer the caller. On NetSapiens, when the rep hangs up, the caller’s call ends at the same moment, so there is no way to send the caller anywhere afterwards. So the rep blind-transfers the caller to the survey agent’s extension. An AI agent can also hand the caller over.

How the call works

1

Intro

The agent speaks the Intro text, which should say the caller is talking to an automated assistant and that the call may be recorded, and then asks the first question.
2

Questions

The agent asks the questions in order. A question with an Only ask when condition is asked only when the condition holds, and a question with a Skip when these transfer details are missing setting is skipped when one of them is unknown on this call. Transfer details in the question text, such as the rep’s name, are filled in at the moment the question is asked. When the first question uses transfer details and the lookup is still running after about 3 seconds, the agent reads the introduction first and asks the first question as soon as the lookup finishes, so a rep that is found is always named. Later questions that use transfer details also wait for the lookup.
3

Closing

When every question is done, the agent says the Closing text and ends the call.
4

Result

The result is sent when the call ends, also when the caller hangs up in the middle of the survey. The answers given so far are kept.
During a survey the agent runs only the survey. Pre-call lookups, Before Call webhooks and knowledge-base auto-search are not used on survey agents.

Counting and cherry-picking

Reps choose whom to transfer, so the results can be biased: a rep can skip the callers who were unhappy. To check, compare the counts. Every survey call that has a saved call record sends exactly one of survey.completed, survey.partial or survey.refused, each with the rep when one was found (see Rep details; without transferred-call context its id, name and extension are null). Compare those events per rep with your PBX’s call counts per rep for the same period.

Caller controls

Creating a Survey Agent

Choose Survey Agent in the new-agent wizard, in the Dashboard or in Connect. Then pick a starter. Afterwards, turn on transferred-call context for the agent, or the questions have no rep details: The wizard asks for your organization’s name (Company Name in the Dashboard, What is the name of your business? in Connect). It is written into the starter’s text where the starter names your business, and you can edit every question afterwards. In the Dashboard, pick the starter and press Use this starter before creating the agent. In Connect, pick it in Starter survey. On the agent’s settings page, Reset to starter replaces the questions, the intro, the closing text and the detractor rule with a starter’s, after you confirm. Nothing changes until you save. Your alert and off-topic settings and the target duration are kept. The survey version is kept too, and goes up only when you save a change.

Settings

The settings are in the Survey section of the agent’s settings page. The Dashboard and Connect word a few labels slightly differently; where they differ for a whole-survey setting, Connect’s wording is given in parentheses. In Connect, each question’s fields are labelled “Question n” followed by the field name, for example Question 1 confirm; where that field name differs from the Dashboard label, it is given in parentheses too. The intro, closing and question text can use transfer details, for example {{transfer.rep.name|your representative}}, which reads “your representative” when the rep’s name is not known. See Transferred-call context for the variables. Multilingual. When the agent’s language is Multilingual, English, Spanish and French text tabs appear. English is required, unless the agent is single-language Spanish or French: then that language is required. A missing translation falls back to English. Version. The version goes up by one on every save that changes the survey, and every event carries it as survey_version. Preview. In the playground nobody transfers the call, so transfer details show their fallback wording.

Detractor alerts

When Send a detractor alert is on and a result matches the detractor rule, the alert is sent to every channel you configured. Each channel is sent separately and on a best-effort basis: a failing channel does not stop the others. To get the Teams URL:
1

Open Workflows

In Microsoft Teams, open Workflows.
2

Pick the template

Choose the template Post to a channel when a webhook request is received.
3

Choose the channel

Choose the team and the channel that should receive the alerts.
4

Copy the URL

Copy the workflow’s URL and paste it in the Teams URL field.
The alert has the same text on every channel:
A yes/no value is shown as yes or no. The alert has no caller number and no raw or open-ended answer text.

Sending results to a CRM

Add an End of Call Action to the agent. For a survey agent it receives the survey result as JSON after the call ends, and the agent’s MCP servers connect for that step only: the live survey never sees your CRM tools. The action can use only the MCP servers’ tools, not the agent’s other functions such as email or SMS. The result is redacted when PII redaction is on for the organization or for the agent. Webhooks remain the guaranteed way to get the results.

Opt-out

“Don’t ask me again” only sets the survey_opt_out flag in the events. Telzino keeps no opt-out list, so partners must honour the flag themselves, by no longer transferring that caller to the survey.

Privacy and HIPAA

  • The answers are spoken, so they are in the call’s transcript. The transcript is redacted when PII redaction is on for the organization or for the agent.
  • Survey answers are redacted when PII redaction is on for the organization or for the agent (organization PII redaction also defaults on for a Healthcare Tenant), the same rule as the transcript. With redaction on, the answers in data are the redacted text, and the raw and open-ended answers are not sent in phi or in the End of Call Action’s survey JSON.
  • The call record’s session_data.survey stores only the survey version, the status, which questions were answered and the flags, never the answers. See Call Logs.
  • In the events, the caller’s number and the raw and open-ended answers go only in phi, when the organization allows it. When transcript redaction is on, the redacted text goes in data. See PHI.
  • Transcripts are visible to anyone who can see call logs. In Connect, the AI Agents tab can only be installed for the Super User, Reseller, Office Manager and Call Center Supervisor roles, so ordinary rep logins do not see it. Partners should keep reps away from call logs.

Rep details

The rep’s name, ID, extension and queue come from Transferred-call context. A new Survey Agent has none of those settings on: in 04 Transfers, under Transferred-call context (in the Dashboard, this is in the Advanced view), turn on at least one (Trust the Referred-By header, Trust the Diversion header, Trust the History-Info header, Dialed number map or Look up the transferring extension in NetSapiens; in Connect, Look up the transferring extension in UCaaS) on the survey agent, or every event has no rep. The NetSapiens lookup needs a NetSapiens integration on API v2. When no rep is found, the questions use their fallback wording and rep.id, rep.name and rep.extension are null. rep.source is null when the agent has no transferred-call context setting on, unknown when the lookup ran but found no rep, and internal after an AI-agent handoff that carried no earlier context.

Availability

The Survey Agent template is governed through Feature Administration as Survey Agent. Locking it hides the template in the new-agent wizard and blocks creating one through the API. Survey agents that already exist keep working and stay editable.