> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a survey to ask for feedback

> Build a multi-page in-app survey using Carousel, Button Click Actions, Outcomes, and Tags for analytics and segmentation.

Using the in-app message Carousel and Button Click Actions, you can create a survey with up to 10 pages of questions and multiple-choice answers. When users respond, you can collect the data as Outcomes and group respondents with [Tags](./add-user-data-tags) for follow-up targeting.

<Note>
  Before starting, make sure you have [in-app messaging set up](./in-app-messages-setup) in your OneSignal app.
</Note>

***

## Design your survey

1. Select the **Full** message type to enable the Carousel feature.
2. Add 3 Text Blocks, 1 Image Block, and 2 Button Blocks.
3. Select **+ Create Carousel** to duplicate this card, then navigate back to **Card 1**.

When you duplicate a card, all blocks are duplicated as well, so you only need to update the content on each new card.

The initial setup looks similar to this:

<Frame caption="In-app editor with a preview of the survey layout">
  <img src="https://mintcdn.com/onesignal/_KaXe4GQkxsEfa17/images/docs/3666fcb-Screen_Shot_2020-09-16_at_5.16.40_PM.png?fit=max&auto=format&n=_KaXe4GQkxsEfa17&q=85&s=908788418ef4eafc875bf6365e72a4cd" alt="In-app message editor showing a full-screen survey with text, image, and button blocks" width="1043" height="849" data-path="images/docs/3666fcb-Screen_Shot_2020-09-16_at_5.16.40_PM.png" />
</Frame>

Add your question text, an image, and button labels to each card. Users read the question, select a button, and swipe to the next question.

### Set up click actions for the first question

The first question might ask whether the user has time to take the survey. Configure each button to send an Outcome so you can track how many users accept or decline.

1. Select a button block and click **Add Click Action** > **Send Outcome**.
2. Adding an Outcome also sets a Tag, giving you both analytics and a segment filter for re-targeting.

For the "Yes" button, **uncheck** "Dismiss on click" (found in the block's top-right menu > **Show Advanced Settings**) so the user can continue to the next card.

<Frame caption="Yes button configured to send an Outcome without dismissing">
  <img src="https://mintcdn.com/onesignal/tNi1OgLc_p9hiq7_/images/docs/1ab478c-Screen_Shot_2020-09-16_at_5.52.40_PM.png?fit=max&auto=format&n=tNi1OgLc_p9hiq7_&q=85&s=59ddc9eff3bdd4f81b29b728b48fccd4" alt="Button block settings showing Send Outcome action with Dismiss on click unchecked" width="498" height="402" data-path="images/docs/1ab478c-Screen_Shot_2020-09-16_at_5.52.40_PM.png" />
</Frame>

<Frame caption="Clone a block to reuse its configuration">
  <img src="https://mintcdn.com/onesignal/jFWn5xzleD8du3j6/images/docs/569c28c-Screen_Shot_2020-09-16_at_5.51.56_PM.png?fit=max&auto=format&n=jFWn5xzleD8du3j6&q=85&s=f784328720544be60c01c1d219869d0a" alt="Block menu showing the clone option" width="502" height="189" data-path="images/docs/569c28c-Screen_Shot_2020-09-16_at_5.51.56_PM.png" />
</Frame>

For the "No" button, configure it the same way but **check** "Dismiss on click" so the in-app message closes.

<Frame caption="No button configured to send an Outcome and dismiss the message">
  <img src="https://mintcdn.com/onesignal/56ctKxZSV4m5VEkn/images/docs/bb9e975-Screen_Shot_2020-09-16_at_5.31.42_PM.png?fit=max&auto=format&n=56ctKxZSV4m5VEkn&q=85&s=0feaf726fc7a1d4873662cc8182b3b0c" alt="Button block settings showing Send Outcome action with Dismiss on click checked" width="495" height="482" data-path="images/docs/bb9e975-Screen_Shot_2020-09-16_at_5.31.42_PM.png" />
</Frame>

***

## Add more cards and questions

Click **Card 2** or swipe the Carousel to the next page. All blocks are duplicated from Card 1.

Update the text and image for the new question. Keep "Dismiss on click" **unchecked** on both buttons so the user can continue to the next card.

<Frame caption="Card 2 with both button blocks configured for survey responses">
  <img src="https://mintcdn.com/onesignal/3zq1PvSaqvUE2bIx/images/docs/314db9a-Screen_Shot_2020-09-16_at_5.41.18_PM.png?fit=max&auto=format&n=3zq1PvSaqvUE2bIx&q=85&s=a78f6b104aff17e795302e1b6f849907" alt="Card 2 showing updated question text and two button blocks with Outcome actions" width="918" height="823" data-path="images/docs/314db9a-Screen_Shot_2020-09-16_at_5.41.18_PM.png" />
</Frame>

Press **+ Add Card** to add additional cards. You can add up to 10 cards total.

***

## Final survey question

For the last card, set up a multiple-choice question to give users more options.

To make room for additional buttons, remove the Image Block and add 2 more Button Blocks. You can clone existing blocks to reuse their configuration.

<Frame caption="Cloning a button block to add more answer options">
  <img src="https://mintcdn.com/onesignal/4HyuQPBpu-4xjmQC/images/docs/cd1cd04-Screen_Shot_2020-09-16_at_5.55.25_PM.png?fit=max&auto=format&n=4HyuQPBpu-4xjmQC&q=85&s=64ceff1af5b4164bf90d275f6f50ad76" alt="Block menu showing the clone option for a button block" width="504" height="406" data-path="images/docs/cd1cd04-Screen_Shot_2020-09-16_at_5.55.25_PM.png" />
</Frame>

Since this is the final question, **check** "Dismiss on click" on every button so the in-app message closes after the user responds.

<Frame caption="Final card with four answer buttons">
  <img src="https://mintcdn.com/onesignal/tNi1OgLc_p9hiq7_/images/docs/14c36ad-Screen_Shot_2020-09-16_at_5.58.56_PM.png?fit=max&auto=format&n=tNi1OgLc_p9hiq7_&q=85&s=e6cbd79778a99253ea1ed2ea51677f68" alt="Final survey card showing four button options, each configured to dismiss on click" width="949" height="822" data-path="images/docs/14c36ad-Screen_Shot_2020-09-16_at_5.58.56_PM.png" />
</Frame>

<Tip>
  After publishing, check your Outcome analytics in the OneSignal dashboard to see response rates. Use the Tags set by each button to build segments for follow-up messages.
</Tip>

***

## FAQ

### How many questions can I include in a survey?

Up to 10. Each Carousel card represents one question, and the Carousel supports a maximum of 10 cards.

### Can I use this for multiple-choice questions with more than two options?

Yes. Add additional Button Blocks to any card. Each button can have its own Outcome and Tag, so every answer option is tracked independently.

### How do I target users based on their survey responses?

Each button click action can set a Tag on the user. After the survey runs, create a [segment](./segmentation) that filters by those tag values to target respondents with follow-up messages.

## Related pages

<Columns cols={2}>
  <Card title="In-app messages" icon="message" href="./in-app-messages-setup">
    Set up and configure in-app messaging in your app.
  </Card>

  <Card title="Data Tags" icon="tags" href="./add-user-data-tags">
    Store user properties for segmentation and personalization.
  </Card>

  <Card title="Design your in-app message" icon="pen-ruler" href="./design-your-in-app-message">
    Full reference for the in-app message editor, blocks, and Carousel.
  </Card>
</Columns>
