Skip to main content
Survey tools let your voice agents conduct surveys mid-call, capture a numeric score, optionally collect a follow-up comment, and persist the results for analytics. Each survey tool corresponds to an ElevenLabs webhook tool that the agent invokes during the conversation.

Survey types

Net Promoter Score

Asks callers to rate on a 0–10 scale. Automatically classifies respondents into promoters (9–10), passives (7–8), and detractors (0–6), then calculates the NPS.

Customer Satisfaction

Collects a 1–5 satisfaction rating and computes a CSAT score as the percentage of respondents who gave 4 or 5.

General Feedback

Open-ended 1–10 rating with optional qualitative follow-up. Suitable for product or service feedback.

Creating a survey tool

1

Navigate to Survey Tools

Open Survey Tools in the sidebar and click Create Survey Tool.
2

Fill in the basics

Provide a name (max 255 characters) and an optional description (max 1000 characters).
3

Choose the survey type

Select one of the three types. The score range and default questions are set automatically:
TypeScore rangeDefault main question
NPS0–10”On a scale of 0 to 10, how likely are you to recommend our service?”
CSAT1–5”On a scale of 1 to 5, how satisfied were you with our service today?”
Feedback1–10”On a scale of 1 to 10, how would you rate your overall experience?”
4

Customize questions and messages

Override the default main question and configure follow-up questions per respondent category (promoter, passive, detractor for NPS; satisfied/dissatisfied for CSAT).You can also customize the response messages the agent speaks:
Message keyPurpose
thank_youSpoken immediately after the score is received
follow_up_promptPrompt for additional comments
completionFinal message at the end of the survey
errorSpoken if the response could not be understood
5

Configure settings

SettingDefaultDescription
Collect follow-uptrueWhether to ask a follow-up question after the score
Require follow-upfalseForce the caller to answer the follow-up before completing
Max follow-up attempts2How many times to re-ask if no answer is given
Timeout seconds30How long to wait for a response before moving on
Sentiment analysistrueAutomatically classify the follow-up text as positive, neutral, or negative
Auto-categorizetrueGroup responses into promoter/passive/detractor categories
Send completion messagetrueSpeak the completion message when the survey finishes
6

Register with ElevenLabs (optional)

Enable Register immediately to push the tool to ElevenLabs as part of the creation flow. You can also register later from the tool detail page.If you enable registration, you can also supply ElevenLabs agent IDs to assign the tool to agents in the same request.
New survey tools are created in draft status. They must be registered with ElevenLabs and set to active before agents can invoke them.

Registering with ElevenLabs

Registering a survey tool pushes its configuration to the ElevenLabs Conversational AI platform as a webhook tool. Once registered, a tool receives an elevenlabs_tool_id and its status is set to active.
1

Open the tool

From the Survey Tools index, click the tool name to open its detail page.
2

Click Register

Click the Register with ElevenLabs button. Sniko sends a POST /convai/tools request with the following configuration:
{
  "tool_config": {
    "name": "survey_{slug}",
    "description": "...",
    "type": "webhook",
    "response_timeout_secs": 30,
    "api_schema": {
      "url": "https://your-app.com/api/tools/survey/{id}/{secret}",
      "method": "POST",
      "request_body_schema": {
        "type": "object",
        "required": ["customer_response"],
        "properties": {
          "customer_response": { "type": "string" },
          "follow_up_response": { "type": "string" },
          "customer_phone": { "type": "string" },
          "customer_email": { "type": "string" }
        }
      }
    }
  }
}
3

Confirm

On success, the ElevenLabs tool ID is stored on the record and the status changes to active.
To unregister a tool (for example, to pause it), click Unregister from ElevenLabs. This sends DELETE /convai/tools/{elevenlabs_tool_id} and clears the stored ID.
Updating a registered survey tool automatically syncs the changes to ElevenLabs via PUT /convai/tools/{elevenlabs_tool_id}. If the tool is not yet registered, the update saves locally only.

Assigning to agents

A survey tool must be registered before it can be assigned to an agent.
1

Open the tool detail page

Navigate to the survey tool you want to assign.
2

Click Assign Agents

Select one or more ElevenLabs agent IDs and submit. Sniko sends POST /agents/{agentId}/tools for each agent with the tool_id body parameter.
3

Verify assignment

Assigned agents are shown on the tool detail page under Assigned Agents. Each assignment record stores the agent ID, agent name, and the timestamp it was assigned.

Webhook endpoint

When an agent invokes the survey tool during a call, ElevenLabs posts to the survey webhook:
POST /api/tools/survey/{id}/{secret}
The secret is a 32-character random string generated at tool creation time. It acts as a shared secret to authenticate the request — any request with a mismatched secret is rejected. Expected request body:
{
  "customer_response": "I'd give it a nine",
  "follow_up_response": "The support team was very responsive",
  "customer_phone": "+14155550100",
  "customer_email": "user@example.com"
}
The service parses the natural-language score (e.g. “nine”, “eight out of ten”, “terrible, maybe a 3”), extracts a numeric value, runs sentiment analysis on any follow-up text, and persists a SurveyResponse record.

Viewing responses

Open a survey tool’s detail page to see:
  • Total responses — count of all processed responses
  • NPS score — calculated as ((promoters − detractors) / total) × 100 (NPS tools only)
  • CSAT score — percentage of respondents who gave 4 or 5 (CSAT tools only)
  • Average score — mean numeric score across all responses
  • Sentiment breakdown — percentage split between positive, neutral, and negative
  • Score distribution — bar chart of response counts per score value
  • Response trend — daily response count over the last 30 days
  • Recent responses — the 50 most recent processed responses

Simple Surveys

Simple Surveys are a lighter-weight feature for collecting structured form data. Unlike the voice-agent survey tools above, they provide a public submission page that anyone can fill out in a browser.

Creating a simple survey

1

Navigate to Simple Surveys

Open Simple Surveys in the sidebar and click Create Survey.
2

Add fields

Define one or more fields. Each field requires:
PropertyDescription
Typetext, email, textarea, select, radio, checkbox, number, or date
LabelThe question label shown to respondents
RequiredWhether the field must be filled before submission
3

Configure settings

SettingDescription
Thank you messageText shown after a successful submission
Collect emailAsk respondents for their email address
Allow multiple responsesWhether the same IP can submit more than once
4

Publish

Save the survey in draft status and publish it when ready. Publishing sets the status to published and records the published_at timestamp.

Public submission URL

Each published survey gets a unique slug-based URL:
GET /surveys/{slug}
This page is publicly accessible with no authentication required. Share it directly with respondents.
If a survey’s closes_at date has passed, or its status is set to closed, the public page displays a closed notice instead of the form.

Analytics

Navigate to Analytics from a simple survey’s detail page to view:
  • Daily, weekly, and monthly response volume charts
  • Per-field response breakdowns with value counts and percentages
  • Total response count
You can also export all responses as a CSV file from the detail page.

Build docs developers (and LLMs) love