# Surveys

With Customer.io, you can send web and in-app surveys (NPS, CSAT, etc) using different arrangements of buttons. We track the buttons your audience clicks, and you can set up conditional branches in your campaigns or broadcasts to handle different responses to your survey.

## How it works[](#how-it-works)

You can use our in-app feature to [send a message with an arrangement of buttons](#create-a-survey) to solicit feedback from your audience—for net promoter score (NPS), customer satisfaction (CSAT), and other kinds of *microsurveys*.

[We track the buttons that people click or tap](#tracked-responses) in your messages, so you can see how your audience feels about your products, features, and so on. You can even use responses to follow-up with people based on their feedback.

Buttons in our surveys do two things:

1.  They record a rating or response.
2.  They dismiss the message.

 Your survey could have multiple steps!

A multi-step message provides a way to ask follow-up questions or thank your audience for their feedback automatically when they respond to your survey. See [Multi-step messages](/journeys/multi-step) for more information.

## Create a survey[](#create-a-survey)

In any message that you want to act as a survey, drag **Buttons** into your message. When you select any of the buttons, you’ll see that they’re set up with:

*   The action **Behavior** set to **Dismiss**. You shouldn’t change this value unless you want to link your audience somewhere in your app.
*   The **Tracked Name** set to a value that’s meant to help you understand your rating scale. You might want to change this value to reflect your rating scale or your button text. For more about setting tracked names and strategies to help you group responses, see [Tracked names and responses](#tracked-responses).

 Use *Tracked Name* values to group responses

If your buttons have tracked names 0-10, like in an NPS survey, you’d have to set up branches for *each number*. But, if you add `detractor`, `passive`, and `promoter` as tracked names, you can set up branches for each of those groups. This makes it easier to manage conditional branches. See [Tracked names and responses](#tracked-responses) for more information.

[![A microsurvey with five options. The first button is selected, showing the action behavior and tracked name.](https://docs.customer.io/images/in-app-button-example.png)](#b216fd87fe8f74ad9c6479fbca3abc19-lightbox)

## Set up conditional branches based on survey responses[](#set-up-conditional-branches-based-on-survey-responses)

You can use conditional branches to act on your audience’s responses to your surveys. For example, you might send a follow-up message to thank your audience for their feedback, or link them to information about a feature that they indicate interest in.

To do this, you’ll add a *Wait Until* block to your message. This lets you wait until a person engages with your message and set *conditions* based on the button(s) people click or tap in your message. You’ll send people down different branches in your workflow depending on how they respond to your survey.

1.  In your campaign, add a *Wait Until* branch.
    
2.  Add your conditions:
    
    1.  Click **Condition** and select **Message** in the *Add condition* dropdown.
    2.  In the next box, select the message you want to listen to responses for.
    3.  Change the condition to **is clicked**.
    4.  In the last box, set the **Tracked name** you want to act on.
    5.  Repeat this process for all the options in your message.
        
        [![set up your microsurvey's conditions to respond based on the option our audience taps](https://docs.customer.io/images/in-app-conditions.png)](#27357d56e3d7965430889c26ccda49d2-lightbox)
        
3.  When you’re done with your conditions, you should set a *Max Time* condition for people who never receive your message or dismiss it without picking an option.
    
    You might want to set your wait time to the expiration time for your message! This means that people have the maximum amount of time to respond to your survey before you act on their lack of response.
    

[![set a max time condition to act on people who don't respond to your survey](https://docs.customer.io/images/in-app-max-time.png)](#5eaa754cbc234a5e5ab731ff8b255b7c-lightbox)

## Tracked names and responses[](#tracked-responses)

Each button has a **Tracked Name**. This is the value we record when someone clicks or taps a button in your message. By default, the **Tracked Name** for each button matches the button text. So, for a row of 5 buttons, the buttons are named 1-5.

You might want to change tracked names if you change the names of your buttons—both to make it easier to understand your data and to make it easier to set up conditional branches based on your audience’s responses.

For example, if you have an NPS survey with buttons 1-5, you might want to set the *Tracked Name* for `1` to `Very Dissatisfied` and `5` to `Very Satisfied`; this’ll make it easier to understand your rating scale.

[![Set up tracked names for your buttons to make it easier to understand your data and set up conditional branches based on your audience's responses.](https://docs.customer.io/images/in-app-set-tracked-name.png)](#b5a7f2954bd04df4ec3e8e78ca48d17a-lightbox)

We count your audience’s responses (for any button that has a *Tracked Name*) under **Tracked Responses** in the metrics tab for your [campaignCampaigns are automated workflows you set up to send people messages and perform other actions when they meet your criteria.](/journeys/campaigns-in-customerio/) or broadcast. We organize responses by message and action name, helping you understand how your audience responded to your messages and surveys.

[![track responses in your campaign](https://docs.customer.io/images/microsurvey-tracked-responses.png)](#d754ad09a32356936e97f79497a4476a-lightbox)

### We don’t track the close button by default[](#we-dont-track-the-close-button-by-default)

**By default, the *Close Button* does not have a tracked name**. But you might want to set a tracked name for the *Close* button if you want people to pass through a campaign even if they don’t respond to your message. Setting a tracked name for the close button lets you create a conditional branch for people who dismiss your message without setting an arbitrary *Wait* period.

[![the close button in an in-app message is selected and its tracked name is empty](https://docs.customer.io/images/in-app-close-name.png)](#eab9bbcc9cb7862c16d7131c76b8f74a-lightbox)