About Surveys

Surveys are question-and-answer experiences used to collect and aggregate feedback or generate a net promoter score. AXP

You create a survey using our provided templates:

  • NPS (Net Promoter Score) — A survey based on the net promoter score metric, which measures how likely it is that your users would recommend your brand or product to a friend or colleague. This can be used to measure their overall sentiment about your brand or product (known as relational NPS) or about a specific experience or transaction, such as booking a flight (known as transactional NPS).

  • User Feedback — A general purpose survey with multiple question options to collect a wide range of user feedback.

After selecting a template, you customize the questions and design. You can also create a confirmation screen that appears when a user submits the survey.

Surveys are designed to be highly contextual and displayed immediately in response to user behaviors, e.g., the user opens the app a specific number of times, views a specific screen, adds an item to their cart, makes a purchase, or views a video. Respond to user behaviors instantly by presenting a survey at the best time, giving you precise control of the user experience. Benefits include:

  • Real-time display — Surveys use our on-device automation framework, which means they can respond to a series of events in real-time (e.g., multiple game level changes, a sequence of screens, additions to a shopping cart) without round-trips to a server.

  • Guaranteed delivery — Surveys use background push for reliable delivery by sending a broadcast background push to all of your app users.

  • Dashboard management — Control all aspects of the survey, including branding, using the Airship dashboard.


Surveys require that analytics be enabled in the SDK. Analytics are enabled by default, and disabling them renders certain features, such as surveys, nonfunctional. See the Analytics and Reporting section of the SDK documentation for information about enabling analytics.

Use cases

Here are a few example use cases for surveys:

  • NPS (Net Promoter Score) — Display an NPS survey to gauge how likely your users are to recommend your app.
  • Customer service rating — Display a customer service satisfaction survey after they end a support chat.
  • Purchase confirmation — Display a survey after they complete a purchase to get feedback on your checkout process.
  • General feedback — Display a survey in response to a button click.
  • Account closure — Display a survey at the end of an account closing asking why they closed their account.

Appearance and behavior

Surveys are cached on users’ devices upon receipt of a background push. When background push is disabled for your project, or for users opted out of background app refresh, our SDK downloads and refreshes surveys during the next app open.

They appear regardless of a user’s opt-in/out status for notifications and remain on screen until the user interacts with them, either by clicking one of the main buttons or dismissing the survey.

Styles and dismiss button

There are two survey styles:

  • A modal survey takes over the user’s screen, compelling the user to interact with it. Modals are typically used to prompt users to reply to a question or provide quick feedback. The modal window is smaller than the full width of the screen, superimposed on the app with a translucent background, indicating that the interruption is temporary.

  • Fullscreen surveys have the same design as modal but use the entire screen.

The Dismiss button appears as an X in the upper right corner of the survey. You can enter a hexadecimal color value to customize its color or opt to hide it.


You can add more content to a survey:

You can drag and drop to reorder header, body, question, and media content and question answers.

A single Submit button is configured and required by default. Clicking the button closes the survey if all required questions have been answered. You can edit the button label and add or remove tags when a user taps a button.


You can customize the appearance of surveys:

  • Background color
  • Text — For Header, Body, Question, and Answer
    • Font family
    • Color
    • Text Size — Numeric value defined as points, not pixels
    • Alignment — Left, right, center
    • Emphasis — Underline, bold, italic
  • Buttons
    • Text — Font, color, size (numeric value defined as points, not pixels), emphasis (underline, bold, italic)
    • Background color
    • Border — Color, radius

Optional features

In addition to configuring when the survey will display and its appearance and content, you can set optional features:

Survey status

Survey status is either Active, Expired, Canceled, or Pending. When you first create a survey it is Active. It remains active until either:

  1. It expires according to its end date.


  2. You stop it. Stopped surveys are considered canceled.

  • Active surveys can be edited or canceled at any time.
  • An Expired or Canceled survey can be edited and its end date extended, making it active again, within a grace period of 14 days. After 14 days they can only be duplicated.

A recently created or edited survey has the status Pending for a few seconds until it completes processing and becomes Active.

See: Change status.

Background push

Background push invokes any typical background actions your app takes when it is woken. For some apps, this behavior can be too much to handle. Because of this, background push is disabled by default for use with surveys.

If you are confident with you app’s ability to handle a larger number of background push notifications, for best results, we highly recommend enabling background push for surveys. Without the use of background push, your app will not receive necessary updates of surveys until the next time the app is opened.

Here are some examples of what can happen if background push is not enabled:

  • New surveys may not be available on the device before the user generates the event that triggers the survey display.

  • Updates to or cancellations of surveys may not get applied in time, so your app may display the wrong version of a survey or display a survey that should not have been displayed.

Please note that while background push is not guaranteed to solve all of the issues above, it does give the SDK the best opportunity to update the survey list before the app is open, making it more likely that your user sees the correct survey.

Enable background push in your project settings.

Default settings

You can set appearance and behavior defaults for surveys, including Color SetsA named pair of hexadecimal color values supporting device Light and Dark modes. Color sets can be selected for any color field in a scene and when configuring the default appearance of Surveys, Scenes, and In-app Automations. Dark mode is supported for Scenes only. and custom fonts. You can override the defaults in the Design settings in the Content step of the Survey composer. See: In-App Experience Defaults.


Airship automatically generates AttributesMetadata used for audience segmentation and personalization. They extend the concept of Tags by adding comparison operators and values to determine whether or not to target a user, helping you better evaluate your audience. based on data from your NPS surveys:

  • NPS Score is the score submitted by the user: 0-10.
  • NPS Category is one of three categories based on the NPS Score. Ratings 9 and 10 have category Promoter, 7 and 8 are Passive, and 6 or lower are Detractor.

See also: Segmenting your audience.


Go to Reports » Surveys for aggregate information about responses to surveys. See: Engagement Reports: Surveys.

We also provide performance reports for individual surveys in the same format as Message Reports. From Messages OverviewA view of all your project’s messages, with options for editing their settings, content, status, and more. click for a survey to open its report.

The header displays the survey name and creation date, time and time zone, as well as its status. Options in the header:

— Changes the status of an Active survey to Canceled. This is effectively the same as specifying an end date, immediately applying an end date of “now.” Active messages can be canceled at any time.

— Changes the status of a Canceled or Expired survey to Active. See: Restart an in-app automation, scene, or survey. This is effectively a shortcut to editing the survey and either eliminating or specifying an end date. Expired surveys can be restarted within a grace period of 14 days. After 14 days they can only be duplicated.

— Opens the survey for editing. Availability depends on its status. Active surveys can be edited at any time. An Expired or Canceled survey can be edited and its end date extended, making it active again, within a grace period of 14 days. After 14 days they can only be duplicated.

— Creates a copy of the survey and opens it for editing. You must complete the composer steps in order to save the new survey.

The Performance section displays:

  • Latest Message Activity — The username, date, time, and activity associated with the most recent change to the survey. Last Message Activity data is available for 90 days after survey creation. For surveys with more than one activity, click Show all to open a modal window that displays all activity.

  • Statistics:

    • Total Displayed — The total number of times the survey was displayed on user devices.
    • Total Completed — The total number of times the survey was submitted.
    • Total Dismissed — The total number of times the survey was dismissed without being submitted.

The Survey Detail section displays the same information shown in the Review step of the Survey composer. Click the arrows to page through the previews of the survey and confirmation screen.

The Events section displays a list of events directly and indirectly attributed to the survey. Click Download CSV to export the data.

  • Event Name — Human-readable name assigned to a particular custom event.
  • Notification Attribution — Displays whether your event was directly or indirectly attributed to the survey.
  • Count — The number of instances of this event.
  • Value — The value (monetary or otherwise) generated by the event.
  • Average ValueValue divided by Count.
  • % of Total CountCount divided by the Total Count (listed on the bottom row).

Message limits

Message limits cap the number of messages you can send within a specified time frame, preventing you from over-messaging your users. They are set at the project level. The limit for Surveys, ScenesMulti-screen experiences that are cached on users’ devices and displayed when your users meet certain conditions within your app, such as viewing a particular screen or opening the app a certain number of times. Scenes can include survey questions or be presented as a story., and In-App AutomationMessages that are cached on users’ devices and displayed when your users meet certain conditions within your app, such as viewing a particular screen or opening the app a certain number of times. are combined. See: Message Limits.

Minimum SDK versions

iOS SDK 16.2+Android SDK 16.2+