> For the complete documentation index, see [llms.txt](https://help.littledata.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.littledata.io/event-editor/common-setups/quiz-answer-lookalikes-meta-ads.md).

# Build audiences from survey answers

### What you'll build

A [custom event](/event-editor/custom-events.md) that fires only for one survey or quiz answer, for example `oily-skin`, so destinations can build audiences and report by need-segment.

Quiz and survey apps write each answer as a tag on the order or customer, not a metafield. The tag is already in the standard event schema, so there's nothing to expose through Custom Data Sources first — you condition directly on the tag.

### What you need

* A quiz or survey app that tags orders or customers with the answer, for example [Octane AI](https://www.octaneai.com) or [KnoCommerce](https://knocommerce.com)
* At least one Littledata destination connected, for example [Meta Conversions API](/integrations/facebook-capi.md), [Google Analytics](/integrations/shopify-to-google-analytics/littledata-shopify-install-guide.md), or [Klaviyo](/integrations/shopify-klaviyo/littledata-klaviyo-installation-guide.md)
* Access to the Event Editor in the Littledata app

{% hint style="info" %}
Tag format varies by app, and by how each merchant configures it: a single combined tag like `skin_type_oily`, or a separate tag per question. Open a recent order or customer with a completed survey in Shopify admin to see the exact tags your setup writes.
{% endhint %}

### Steps

{% stepper %}
{% step %}

#### Add a custom event

Go to **Settings** for your destination, then open the [Events tab](/event-editor/getting-started.md).

Click **Add event**. Name it for the answer, for example `oily_skin_purchase`, and select **Purchase** as the base event. See [Derive a new custom event](/event-editor/custom-events.md).
{% endstep %}

{% step %}

#### Scope it with a trigger condition

Add a condition matching the tag for that answer:

| Setup                           | Field             | Operator   | Value            |
| ------------------------------- | ----------------- | ---------- | ---------------- |
| Order tagged with the answer    | `properties.tags` | `contains` | `skin_type_oily` |
| Customer tagged with the answer | `customer.tags`   | `contains` | `skin_type_oily` |

Use the tag your app actually writes. See [Trigger conditions](/event-editor/trigger-conditions.md).
{% endstep %}

{% step %}

#### Preview and save

Use the [event preview](/event-editor/event-preview.md) to check the payload, then click **Save**.
{% endstep %}
{% endstepper %}

### Destination notes

* **Meta**: mark the event as a custom conversion in Events Manager, then build a custom audience and a lookalike from it. Pair each lookalike with creative for that need.
* **GA4**: mark the event as a key event, or compare conversion rate and AOV against the standard purchase event.
* **Klaviyo**: use the event to trigger need-specific flows.

### Verify it's working

1. Place a test order with a customer account that has completed the survey with the matching answer, or wait for a real one.
2. Confirm the derived event appears alongside the standard purchase event, for example in Meta **Events Manager** or GA4 **DebugView**.

### Make it yours

This setup is a [custom event](/event-editor/custom-events.md) conditioned on a tag. Repeat it for each answer segment you want to build an audience or report from, for example hair goal or dietary need.

* If your app tags both orders and customers, pick whichever the survey actually writes to.
* Want the raw answer visible as a parameter instead of a separate event? Map the tags field onto the purchase event as a custom parameter instead — see [Remap existing events](/event-editor/field-mappings.md). This sends every tag on the order, not just the survey answer, so it's noisier to report on than a dedicated event.
* Some survey or loyalty apps do sync answers to metafields instead of tags. If yours does, expose it with a [custom data source](/event-editor/custom-data-sources.md) and condition on that field instead.
