RX

rauxdata Documentation

Everything you need to collect post-purchase insights and understand where your customers really come from.

What is rauxdata?

rauxdata is a post-purchase survey and attribution platform built for DTC (Direct-to-Consumer) ecommerce brands. After a customer completes a purchase, a lightweight survey appears — asking things like "How did you hear about us?" Their answers are matched with UTM data and analytics to reveal your true acquisition channels.

Unlike ad platform dashboards that show you what they want you to believe, rauxdata gives you first-party, zero-party data straight from your customers. No cookies, no fingerprinting — just honest answers.

Who is it for?

DTC Brands

Understand which marketing channels truly drive loyal customers, not just clicks.

Shopify Stores

Connect in one click and automatically inject the widget into your theme.

Marketing Teams

Validate your channel mix with real customer responses alongside UTM data.

Agencies

Manage multiple client stores from a single workspace with white-label branding.

Getting Started

From zero to your first response in under 5 minutes.

1

Create your account

Go to rauxdata.com and sign up with your email. You will receive a verification email — click the link to activate your account.

First-time setup

Business profile wizard

After activating your account, new workspaces are guided through a short 2-step profile wizard. You'll be asked about your industry, monthly order and revenue ranges, e-commerce platform, how you found rauxdata, and your primary goal. This data helps us tailor the platform to your business and powers future benchmarking features. You can skip any question — the wizard only appears once per workspace.

2

Create a workspace

A workspace represents your brand (or your client if you are an agency). Each workspace has its own billing, branding, and team members.

  1. On first login you'll be prompted to name your workspace.
  2. Enter your brand name and confirm.
  3. For agencies: create additional workspaces from Settings → Create workspace.
3

Create a project

A project corresponds to one website or store. Each project has its own survey, widget, and analytics.

  1. Navigate to Settings in the sidebar.
  2. Click New project.
  3. Enter a name and your store domain (e.g. mystore.myshopify.com).
  4. Click Create.
4

Install the widget

Open your project → go to the Install tab. Copy the script tag and paste it into your site before the closing </head> tag, or use the .

5

Create and activate a survey

Open your project → go to the Survey tab. Pick a template or build from scratch, then click Save all. Saving activates the survey — it will immediately start appearing to customers on your store. Only one survey can be active per project at a time; saving a new one automatically deactivates the previous.

Tip: Use debug mode

Append ?raux_debug=true to any page of your store to force the widget to appear, regardless of trigger settings. Use this to verify the installation.

Survey Builder

Design multi-question surveys with logic branching, routing, and 20+ ready-to-use templates.

Question Types

Buttons (Single Choice)

The most common type. The customer taps one option from a list of buttons. Best for "How did you hear about us?" questions.

Google · Instagram · TikTok · Referral · Other

Checkbox (Multi-Choice)

Let customers select multiple options. Great for "What motivated your purchase today?"

Price · Quality · Reviews · Recommendation · Discount code

NPS (Net Promoter Score)

A numeric 0–10 scale. Scores of 9–10 are Promoters, 7–8 are Passives, 0–6 are Detractors.

"How likely are you to recommend us to a friend?"

Open Text

Free-form text input. Use as a follow-up to capture nuance after a button answer.

"Which specific podcast or show did you hear us on?"

Auto-suggest

Text input with dropdown suggestions as the customer types. Perfect for channel or podcast names. In the question editor, add each suggestion in the 'Options' list — those become the autocomplete choices.

Start typing 'Inst...' → suggests 'Instagram', 'Instagram Stories'...

Date

A date picker. Use for collecting birthdays or anniversary dates for personalization.

"When is your birthday? (for a surprise gift)"

Select (Dropdown)

A dropdown list — like buttons but more compact. Use when you have many options or limited screen space.

Country of origin · Preferred contact method · Age group

Ranking

Customers drag items to rank them in order of preference. Great for prioritization questions.

"Rank what matters most to you: Price · Quality · Shipping speed · Brand reputation"

Star Rating

A 1–5 star rating scale. Use to rate specific aspects of the experience.

"How would you rate our product quality?"

Slider

A drag-to-rate numeric scale with configurable min, max, step, and labels. See the Slider & Ranking section for full details.

"Rate your delivery experience: 0 (terrible) → 10 (perfect)"

Media Choice

Single-choice buttons with image thumbnails. Each option shows an image above the label — great for brand recognition or product discovery questions.

"Where do you mainly see our ads?" — each option shows the platform logo.

Templates

Templates give you a pre-built survey in seconds. Click Use template in the Survey tab to open the template picker. You can customize any template after applying it.

Attribution (6 templates)

Attribution — Simple

One question: How did you hear about us? Single-choice buttons.

Attribution — With Routing

Asks how they found you, then routes to a specific follow-up per channel.

Attribution + NPS

Combines attribution and NPS in a single 3-question flow.

Attribution — Auto-suggest

Open text with channel suggestions — great for high-traffic stores.

Attribution — When First Heard

Asks when the customer first discovered the brand, not just how.

Attribution — Brand Touchpoints

Multi-touchpoint: which channels did they encounter before buying?

NPS (1 template)

Net Promoter Score

Asks for a 0–10 rating, then captures qualitative feedback in an open-text follow-up.

Personalization (5 templates)

Birthday

Collects birthday date for loyalty campaigns.

Customer Segment

Identifies who the customer is (myself, gift, business...).

Purchase For

Asks who the purchase is for.

Occasion

What occasion triggered this purchase (birthday, anniversary, ...).

Segmentation

General segmentation question to classify customers.

Research (8 templates)

Open-ended Research

Single open-text question for qualitative feedback.

Product Feedback

Rated satisfaction with a follow-up for specifics.

Age Range

Demographic age segmentation.

Gender

Demographic gender question.

Shipping Importance

How important was free/fast shipping in the purchase decision?

Price Sensitivity

Was price the main motivator?

Podcast Discovery

Which podcast brought them here? Auto-suggest for common podcasts.

Brand Switch

Did they switch from a competitor? If yes, ask which one.

CRO / Conversion (4 templates)

Purchase Motivation

Multi-select: what motivated this purchase?

Purchase Barriers

Did they hesitate? If yes, why? Helps remove conversion friction.

Store Difficulty

Was it easy to find what they were looking for?

Order Issues

Did they have any issues during checkout?

Routing & Logic

Routing lets you send customers to different follow-up questions based on their answer. For example: customers who answered "Instagram" can be asked "Was it a Reel, a Story, or an ad?" while customers who answered "Podcast" are asked "Which podcast?".

  1. In the Survey tab, open a question card and click Routing.
  2. For each option, select the target question from the dropdown (or "End survey").
  3. Save all changes.

Follow-up Questions

Follow-up questions are inline expansions triggered by a specific answer. They appear immediately after the answer without navigating to a new question screen — ideal for Yes/No flows.

Example: "Did you hesitate before buying?" → Yes → shows a text box "What almost stopped you?"

Survey Language

Each project can be set to English or Spanish. The widget UI (buttons, placeholders, and labels) will automatically display in the chosen language. Configure this in the Trigger tab → Widget Language.

Slider & Ranking Question Types

Collect numeric ratings and ranked preferences with two new question formats.

Slider

A Slider question presents a horizontal range input. Respondents drag a handle to pick a numeric value between a minimum and maximum you define. The answer is stored as a plain number and visualised as a 10-bucket histogram in Analytics.

Slider configuration fields

Min / Max

The numeric bounds of the slider. Min must be less than Max. Both are required.

Step

Optional. Snap interval (default 1). Use 0.5 for half-steps or 10 for coarser increments.

Min label / Max label

Optional text labels rendered at each end of the slider (e.g. "Not at all" / "Extremely").

Ranking

A Ranking question lets respondents drag options into their preferred order. Answers are stored as a JSON array of option labels in ranked order.

  • Ranking questions do not support the "Allow Other" or "Randomize order" toggles — these are intentionally hidden.
  • Routing (conditional branching) is not available on Ranking questions.
  • In Analytics, ranking answers are aggregated by option position frequency — the most-first-ranked option is highlighted.

Draft & Publish Mode

Edit your survey safely without affecting live customers — publish only when you're ready.

How it works

  1. Every save in the Survey Editor writes to a private draft — live customers always see the last published version.
  2. An "Unpublished changes" badge appears in the toolbar whenever your draft differs from the published version.
  3. Click Publish to push your draft live. The widget cache updates automatically within seconds.
  4. Click Discard to throw away the draft and revert to the currently published survey.

Why this matters

Safe iteration

Experiment with question wording, order, and logic without disrupting active response collection.

Team reviews

Share a preview link with teammates before pushing changes to production.

Instant rollback

Made a mistake? Discard the draft to immediately restore the last good version — no downtime.

If you have never published after creating the project, every customer sees the initial survey config. Clicking Publish for the first time "seals" that version and enables the draft/publish cycle going forward.

Widget Installation

Install the rauxdata widget on your store in minutes. We support Shopify, WooCommerce, Hotmart, and any website.

On any platform (script tag)

Works on any platform: Shopify (manual), WooCommerce, Hotmart, Webflow, or custom HTML.

  1. Open your project and go to the Install tab.
  2. Select your platform from the dropdown (Shopify, WooCommerce, Hotmart, or General).
  3. Click the copy icon next to the script tag.
  4. Paste it into your site's HTML before the closing </head> tag.

Shopify (manual)

In Shopify Admin → Online Store → Themes → Edit code → layout/theme.liquid. Paste the snippet just before </head>.

WooCommerce

Install a plugin like 'Insert Headers and Footers'. Paste the snippet in the Header section.

Hotmart

In your product settings, find the Custom Tracking Code section and paste the snippet there.

General HTML

Paste the snippet before </head> in your HTML template. It loads asynchronously — zero impact on page speed.

On Shopify (no-code)

Connect your store with OAuth — no code and no theme files to edit. rauxdata installs as a Shopify app and captures order revenue automatically. You then choose where the survey appears: on your storefront with your own design (recommended), or natively on the checkout thank-you page (advanced). By default, with no extra setup, the survey shows on your storefront as an overlay, in always-on mode, on the home page — and channel attribution is captured either way. You can change the surface, mode, and path anytime from the Trigger tab.

  1. Open your project → Install tab → Connect with Shopify.
  2. Enter your store domain (e.g. mystore.myshopify.com) and click Connect.
  3. Approve the permissions on Shopify. rauxdata requests read_orders and read_customers — these power automatic revenue capture and customer-level deduplication.
  4. Back in rauxdata the status shows "Pending embed". In Shopify → Online Store → Themes → Customize → App embeds, turn on rauxdata.
  5. The status turns green when the widget loads on your store.
What permissions does rauxdata request? read_orders and read_customers. rauxdata reads order totals and customer identifiers to capture revenue and attribution automatically — it never writes to your store, and the raw data stays in Shopify.

Advanced: survey on the checkout thank-you page

For a survey inside the checkout — native look, with each answer linked to its exact order. From your Shopify admin: Home → Manage themes → Edit theme to open the theme editor. Then open the page selector → Checkout and customer accounts, click the Apps icon (top-left), add the Rauxdata Checkout Survey block to the Thank you page, and Save.

Verifying the Installation

  1. After installing, open your store in a browser.
  2. Append ?raux_debug=true to the URL to force the widget to appear.
  3. Back in the rauxdata dashboard, the connection status in the Install tab should update to Active (green dot) within a few seconds.
Blocked origins? The "Blocked connections" panel appears only when rauxdata detects requests from a domain that doesn't match your project's registered domain. Click Authorize next to the blocked domain to allow it. This usually happens with staging domains or www vs. non-www mismatches.

Tracking Purchases

To associate survey responses with specific orders, call the tracking API after a successful purchase:

<script>
  window.RAUX.track('purchase', {
    orderValue: 129.99,  // numeric order total
    currency: 'USD'      // ISO 4217 currency code
  });
</script>

Place this script on your order confirmation page, after the rauxdata widget script.

Design & Branding

Make the widget look like your brand. Fully customizable — no coding required.

Workspace Branding

Two workspace-level settings drive the branded emails sent from this workspace:

Primary Color

The accent color used on email buttons. Use your brand's hex code.

Logo URL

A direct link to your logo (PNG or SVG recommended). Shown at the top of branded emails. The widget itself does not render the logo because it already lives inside the merchant storefront.

Configure workspace branding in Branding (sidebar icon). These values drive your branded emails; per-project widget appearance lives in the Design tab of each project.

Per-Project Widget Customization

Each project can override workspace branding with project-specific widget visuals in the Design tab:

Accent Color

Button and highlight color. Overrides the workspace primary color.

Background Color

The widget card background. Default: white (#ffffff).

Text Color

Body text and labels. Default: near-black (#1a1a1a).

Border Radius

Slider from 0px (sharp corners) to 32px (fully rounded). Default: 12px.

Font Family

Choose from Inter, Roboto, Open Sans, Lato, Montserrat, Poppins, Playfair Display, Georgia, or Courier New.

Live Preview

The Design tab includes a real-time preview of your widget. Switch between Desktop and Mobile views. Click Test Trigger to see the widget as a full-screen overlay — exactly as your customers will see it.

Custom CSS

Inject your own CSS into the survey widget — full visual control, fully isolated.

What is Custom CSS?

Custom CSS lets you override any visual aspect of the survey widget beyond the standard color, font, and border-radius controls. Your CSS is injected into the widget's Shadow DOM — completely isolated from your store's stylesheet — so there is no risk of leaking styles into your page or vice versa.

How to use it

  1. Open your project → Design & Branding tab.
  2. Scroll to the Custom CSS section at the bottom.
  3. Type or paste your CSS into the textarea (max 10,000 characters).
  4. Click Save Visuals. The widget cache refreshes automatically.
  5. Use ?raux_debug=true on your store to preview the changes instantly.

Available CSS classes

ClassTargets
.raux-overlayOverlay backdrop (fixed, full-screen)
.raux-cardModal card container
.raux-logoBrand logo image
.raux-questionQuestion text
.raux-optionsOptions / buttons wrapper
.raux-optionIndividual answer button
.raux-selectDropdown <select>
.raux-input-groupText-input wrapper
.raux-inputText <input>
.raux-submitSubmit / Next / Send button
.raux-closeClose / Previous button
.raux-stepsProgress dots container
.raux-dotSingle progress dot
.raux-thankyouThank-you screen wrapper
.raux-thankyou-iconThank-you checkmark icon
.raux-thankyou-titleThank-you title text
.raux-thankyou-subtitleThank-you subtitle text
.raux-other"Other" input container
.raux-other-label"Other" label text
.raux-nps-wrapperNPS scale outer wrapper
.raux-star-wrapperStar-rating outer wrapper

Examples

Rounded card

.raux-card { border-radius: 24px; }

Custom question font size

.raux-question { font-size: 18px; }

Background gradient

.raux-card { background: linear-gradient(135deg, #1a1a2e, #16213e); color: #fff; }

Hide close button

.raux-close { display: none; }

Pill-shaped buttons

.raux-option { border-radius: 999px; }
Security note: CSS containing <script tags or javascript: URLs is rejected. The 10k character limit prevents oversized payloads.

Trigger Settings

Control exactly when and where the survey appears. Everything is in the Trigger tab of your project.

Auto-trigger

Toggle this ON to enable automatic survey display. When OFF, the survey only shows when called programmatically via the JS API.

Trigger Delay

How many seconds to wait after the page loads before showing the survey. Default is 0 (immediate). Increase to 3–5 if your checkout confirmation page has animations.

Trigger Mode

Choose between Post-purchase (default) and Always-on. Post-purchase is the original e-commerce flow — the survey only fires on success / thank-you pages that also carry UTM parameters; use it for order confirmation surveys. Always-on skips the success-page and UTM gates and uses an engagement signal instead: the widget opens on whichever comes first — the visitor scrolls past 50% of the page, or stays for at least max(Trigger Delay, 10) seconds. Use it for landing pages, blogs, pricing pages, and any content surface where visitors did not come from a tracked checkout. When you select Always-on, make sure to also set Frequency Cap (below) to "day" or "week" — otherwise the survey will reappear on every visit.

Trigger Path

Restrict where the widget can fire. Leave empty to allow any page on your domain (post-purchase mode still requires a success-page match). The format is comma-separated routes: "/", "/docs", "/pricing,/blog". Matching rules: "/" matches ONLY the homepage (it does NOT match every URL — this protects you from accidentally firing on /dashboard, /account, /login when the snippet is on every page). Other routes match exact OR sub-routes — "/docs" matches "/docs" and "/docs/getting-started" but NOT "/docsearch". Comparison is case-insensitive. Shopify tip: /thank_you is Shopify's default post-purchase path.

Widget Language

The language of the widget UI (button text, placeholders, etc.). Available in English and Spanish. Note: your survey questions can be in any language regardless of this setting.

Geography Targeting (per question)

In the Survey Editor, each question can be restricted to specific countries. Open a question card and find the Geography section. You can choose Include (show only to listed countries) or Exclude (hide from listed countries). Use 2-letter country codes (US, GB, AR). Customers outside the allowed countries skip that question automatically.

Shopify tip: Shopify injects the widget on all pages of your store by default. Set the Trigger Path to /thank_you to ensure the survey only appears on the post-purchase confirmation page.

Audience Targeting

Control exactly who sees your survey — not just where, but who.

What is Audience Targeting?

The Audience tab in each project lets you define rules that gate survey display. Without rules, the survey shows to every visitor who meets the trigger path conditions. With rules, only visitors who match your criteria see it — by customer type, order count, total spend, or Shopify tags.

Option A — Supply attributes via RAUX.track()

  • Pass orderCount, totalSpent, and tags in your RAUX.track() call on the purchase page.
  • These values are stored client-side and evaluated when the survey is about to appear on the thank-you page.
  • Works on any platform — no Shopify required.
  • Example: RAUX.track({ orderId: '...', orderCount: 3, totalSpent: 450, tags: ['vip'] })

Option B — Shopify automatic enrichment

  • If your project has a Shopify integration, rauxdata fetches orderCount, totalSpent, and tags automatically using the orderId from RAUX.track().
  • No extra code needed in your theme — the enrichment happens server-side before the widget evaluates the rules.
  • Requires the Shopify integration to be active in your project.

Building rules

  1. Go to your project → Audience tab.
  2. Click Add rule and select an attribute (Customer type, Order count, Total spent, or Tags).
  3. Choose an operator (equals, greater than, contains, etc.) and set a value.
  4. Add multiple rules and choose Match ALL or Match ANY.
  5. Click Save. The widget config updates immediately.
  6. Remove all rules to go back to showing the survey to everyone.
Note: If audience rules are configured but no customer attributes are available at display time (e.g. RAUX.track() was not called and Shopify enrichment timed out), the widget will not show. This is a safe default — rules only fire when there is enough context to evaluate them.

Analytics & Attribution

Your dashboard shows the big picture: where customers say they came from, how it matches your UTM data, and every individual response.

Selecting a Project and Date Range

On the main Overview page, use the View results for dropdown to select a project. Use the date range picker (top right) to filter by time period.

Question Selector

When a project has multiple survey questions, the "View results for" dropdown lets you choose which question's data to visualize in the attribution chart. For example, you can switch between "How did you hear about us?" and "What motivated your purchase?" to see attribution by different dimensions. Selecting a question also reveals a Channel Distribution bar chart below the main attribution chart — showing, for that specific question, how many responses came from each acquisition channel.

KPI Cards

Total Responses

Total number of survey responses collected for the selected project and date range.

Match Rate

The percentage of responses where the customer's stated source matches the UTM source recorded at the time of the visit. A high match rate means your UTM tracking is accurate.

Data Mismatch

Responses where the customer said one channel, but the UTM data shows a different one. These are the most insightful data points — they reveal where last-click attribution is wrong.

Revenue

Total revenue from tracked purchases (in the store's currency). Only populated when you call window.RAUX.track('purchase', { orderValue, currency }) on your confirmation page.

Views

How many times the survey widget was displayed to visitors. Requires the widget to be embedded on your store.

Started

How many visitors interacted with the survey (opened the first question). Compared to Views, this shows your activation rate.

Completion Rate

Submitted responses ÷ Views. Measures end-to-end funnel efficiency — how many visitors who saw the survey completed it.

Attribution Chart

The main chart compares two values per channel: what customers said (zero-party data) in darker bars vs. what the UTM data shows (technical attribution) in lighter bars. When these bars diverge for a channel, last-click attribution is underreporting or overreporting that channel.

The pie chart on the left shows the distribution of self-reported answers — at a glance, which channels your customers say drove them to purchase.

PDF Report Export

Click Export PDF Report (top right of the analytics page) to download a formatted PDF report of the current view — charts, KPIs, and date range included. When a currency is active in the dashboard, the PDF dialog shows which currency the revenue figures are reported in, and the exported report reflects that currency. Useful for sharing attribution insights with clients or stakeholders who don't have dashboard access.

Audience Filter

Use the Audience toggle on the Overview page to segment all charts by customer type:

All customers

Every response, regardless of whether the customer is new or returning.

New customers

First-time buyers. Use this to understand what initially attracts customers to your brand.

Returning customers

Repeat purchasers. Use this to understand what brings loyal customers back — often different from acquisition channels.

Responses Table

The responses table shows your most recent survey completions with:

  • Customer answer(s) to each question
  • UTM source and medium captured at the time of the visit
  • Revenue (if purchase tracking is active)
  • Status badge: Mismatch (user reported a different source than UTM) or No UTM (visit had no UTM parameters)
  • Timestamp

Each row can be deleted individually to remove test or invalid responses.

NPS by Channel

Find out which marketing channels bring your most loyal customers — not just the most customers.

What is NPS?

Net Promoter Score (NPS) measures customer loyalty on a 0–10 scale:

9–10

Promoters

Will recommend you

7–8

Passives

Satisfied but not loyal

0–6

Detractors

May warn others away

Your NPS is % Promoters − % Detractors, ranging from −100 to +100. A score above 0 is good; above 50 is excellent.

How to Read NPS by Channel

The NPS by Channel chart shows your NPS score broken down by acquisition channel. Toggle between UTM Source (e.g. instagram, google) and UTM Medium (e.g. paid, organic, email).

This answers the question: "Which channel is bringing us customers who actually love us?" A channel might drive volume but bring low-NPS customers who churn. Another might have fewer conversions but send loyal buyers who recommend you.

Prerequisite: NPS by Channel requires an active NPS question in your survey. Use the NPS or Attribution + NPS templates to get started. You need at least a handful of responses per channel for the scores to be statistically meaningful.

Detractor Alerts

rauxdata automatically sends you an email alert whenever a customer submits an NPS score of 0–6 (Detractor). The alert includes:

  • The exact score
  • The acquisition channel (UTM source) if available
  • Whether the customer is new or returning
  • A direct link to your dashboard to review the response

Alerts are sent automatically to the workspace owner's email. No configuration needed — they activate as soon as your first NPS question is live.

Score Distribution Chart

The Distribution tab in the NPS panel shows a horizontal bar chart with one bar per score (0–10). Each bar represents the count of respondents who gave that exact score, colored by bucket: red for Detractors (0–6), yellow for Passives (7–8), and green for Promoters (9–10). Use it to see whether your Detractors cluster at 5–6 (nearly Passive) or at 0–2 (extremely unhappy) — a key insight for prioritizing follow-up actions.

Order Attribution

The Order Attribution tab connects your survey responses directly to purchase data — letting you see which answer options drive the most orders and revenue. It is the most direct way to measure the ROI of each acquisition channel using your customers' own words.

Access it from the Analytics dashboard: select a project and scroll to the Order Attribution section.

Filters

  • AudienceSegment by All customers, New customers (first-time buyers), or Returning customers. Default: All.
  • QuestionSelect which survey question to break down by. Only questions with at least one attributed response are shown. On first load, all questions are available; after the initial data load the list narrows to questions with actual attribution data.
  • Date rangeFilters by purchase date (orderPlacedAt), not by survey submission date. Leave empty to include all dates.
  • CurrencySelect the currency to scope the report to. Auto-selected when only one currency exists in the dataset — zero extra steps for single-currency stores. Multiple currencies appear as separate options.

KPI Cards

  • Total OrdersCount of distinct orders in the selected currency scope.
  • Total RevenueSum of revenue across all attributed orders in the selected currency.
  • Orders with ResponseCount of orders linked to a survey response that includes an answer for the selected question.
  • Attribution RateOrders with Response ÷ Total Orders. Tells you what percentage of your total orders have a matching survey response.

Estimate 100% Toggle

When your attribution rate is below 100%, the Estimate 100% toggle extrapolates your partial data to a projected full picture. It scales order counts and revenue by the inverse of the attribution rate (1 ÷ attributionRate). The toggle is OFF by default and all estimated values are clearly labeled "Estimated". It is disabled automatically when there are no attributed orders to base the estimate on.

View in Base Currency Toggle (v1.1)

When a base currency is configured in your project settings, the "View in [currency]" toggle appears whenever the selected report currency differs from your base currency. Activating it converts all revenue values using ECB exchange rates (updated daily from frankfurter.app). The rate source label is shown below the table: "ECB rates · updated [date]" for live rates, "Converted using custom rates" when you have overridden rates in settings, or "(stale)" appended when the last fetch failed. You can set custom exchange rates in Settings → Currency to override the ECB defaults.

Survey vs. UTM Comparison

Below the breakdown table, Rauxdata renders a side-by-side comparison chart showing what your customers said (darker bars, survey data) versus what UTM last-click tracking recorded (lighter bars, technical attribution) — per acquisition channel. When the two bars for a channel diverge, it means your UTM tracking is underreporting or overreporting that channel.

Mismatch Rate

The mismatch rate (shown as a percentage above the chart) is the share of attributed orders where the channel reported by the customer in the survey differs from the channel recorded in the UTM source. A high mismatch rate — typically 20–40% for paid social — reveals gaps in your click-based attribution and shows how much dark traffic your UTMs miss. Channels like influencer content, podcasts, word-of-mouth, and untagged organic posts tend to show the largest divergence.

Attribution data requires RAUX.track('purchase', { orderId, revenue, currency }) to be called on the order confirmation page.
Data is based on order purchase date. Email survey responses without an order link are not included.
The comparison section is hidden when fewer than two known channels have data, or when no orders in the selected date range have both a survey answer and a UTM source. Orders without utmSource are excluded from the comparison but still appear in the breakdown table above.

Metrics Reference

Attribution Coverage

The percentage of tracked orders that have a matching survey response. Capped at 100% — never exceeds it, even when Response Density is above 1.0.

min(Orders with Response ÷ Total Orders, 1.0) × 100

If you have 60 tracked orders and 30 of them have a survey response, Attribution Coverage = 50%. If you have 30 tracked orders and 40 responses (density > 1.0), Attribution Coverage = 100% (capped).

Use Attribution Coverage to understand how much of your order volume is explained by survey responses. A coverage below 30% may indicate the survey is not showing for all customers.

Response Density

The ratio of survey responses to tracked orders, uncapped. A value above 1.0 means more responses exist than orders — this is normal and has several causes.

Orders with Response ÷ Total Orders (raw, no cap)

If you have 20 tracked orders and 30 survey responses, Response Density = 1.50. This does not indicate an error — see "Why can Response Density exceed 1.0?" below.

Monitor Response Density alongside Attribution Coverage. A density well above 1.0 combined with Data Quality issues (duplicates or orphans) may warrant investigation.

Data Quality Indicators

Three counters appear below the breakdown table to help you spot data gaps. They reset with each filter change.

  • Orphan Responses

    Survey responses whose order ID has no matching purchase row. Attribution counts them but no order revenue is linked.

    Example: A customer completed the survey but the RAUX.track("purchase") call never fired on the confirmation page (e.g., checkout on a sub-domain without the widget).

  • Uncovered Orders

    Tracked orders with no matching survey response for the selected question. These orders are in your revenue total but not attributed.

    Example: Customer skipped the survey, closed the tab before it appeared, or the survey question was not active when the order was placed.

  • Duplicate Responses

    Order IDs with more than one attributed response for the same question. Only the first response is used for attribution; excess responses inflate Response Density.

    Example: A customer placed an order, submitted the survey, then re-submitted it (e.g., by refreshing the confirmation page). Both responses share the same order ID.

Why can Response Density exceed 1.0?

Response Density > 1.0 is expected in several common scenarios. It does not mean data is corrupted.

  • Guest checkout without purchase event: a customer surveys but the confirmation-page script does not fire (missing widget or blocked script), so the purchase row is never created. The survey response is counted; the order is not.
  • Refunded or cancelled orders: orders removed from your platform may be excluded from the purchase table while their survey responses remain.
  • Duplicate responses: a customer submits the survey more than once for the same order (e.g., page refresh on the confirmation page).
  • Multi-item orders tracked as separate line items: if your integration tracks individual line items as separate orders, one survey response maps to multiple purchase rows — or vice versa.
  • Test and staging data leaks: orders placed during QA or Shopify's test mode may appear in the purchase table without a corresponding real survey response, skewing the ratio.

Access & Permissions

Order Attribution data is read-only. All workspace members can view attribution reports regardless of role.

RoleAccess
OwnerFull read access to all Order Attribution data and configuration.
AdminFull read access to all Order Attribution data and configuration.
ViewerRead access to Order Attribution data. Cannot modify project settings.
AnonymousNo access. Authentication required.

Glossary

  • AttributionThe process of linking a survey response to a specific purchase order, enabling you to measure revenue impact per answer option.
  • UTM / Last-ClickA technical tracking method that records the last marketing link a customer clicked before buying. Misses dark channels like podcasts, word-of-mouth, and direct searches.
  • Zero-Party DataData customers intentionally share with you — in this case, answering "How did you hear about us?" directly. More accurate than inferred data because it comes straight from the source.
  • MismatchWhen the channel reported by the customer in the survey differs from the UTM last-click channel. A high mismatch rate reveals gaps in click-based attribution.
  • Orphan ResponseA survey response whose order ID has no matching purchase row. The response is attributed but the corresponding order was not tracked via RAUX.track("purchase").

Live Feed

Watch survey responses arrive in real time — no page refresh needed.

What is the Live Feed?

The Live Feed is a real-time panel on the Analytics page that streams incoming survey responses as they happen. Each card shows the project name, channel attribution, first answer, and a relative timestamp. The feed is scoped to your workspace — you only see responses from projects you own.

How it works

  1. Open the Analytics page for your workspace. The Live Feed panel appears in the lower section.
  2. The connection status dot turns green ("Live") once the SSE stream is established.
  3. Each new response card slides in at the top. The panel keeps the last 20 responses.
  4. If the connection drops (e.g. network interruption), the dot turns yellow ("Reconnecting...") and the browser reconnects automatically.
The Live Feed uses Server-Sent Events (SSE) — a lightweight, one-way stream that does not require WebSockets. It has no impact on survey widget performance.

Signals

rauxdata automatically analyzes your response data and surfaces patterns you might have missed.

What Signals Does

Once you have collected responses, the Signals engine reads your open-text answers and structured responses to identify recurring themes, anomalies, and actionable opportunities. Examples of insights it might surface:

  • "37% of customers from Instagram Stories mention influencer recommendations. Consider a dedicated landing page."
  • "Detractors disproportionately mention shipping time. This is your top churn risk."
  • "Podcast-acquired customers have the highest NPS — invest more in podcast sponsorships."

How It Works

Insights are generated automatically as your response count grows. They appear in the Signals card on your Overview dashboard. No configuration required.

Insights refresh periodically as new responses come in. Each insight includes a short analysis and a recommended action.

Minimum data required: Signals activate after a meaningful number of responses are collected. The more data you have, the more specific and actionable the insights become.

Email Survey

Send your survey as a standalone link via email, SMS, or any marketing channel — no widget required.

What is the Email Survey link?

The Email Survey feature generates a unique public URL (e.g. https://app.rauxdata.com/s/AbCdEf123) that renders your active survey as a full-page experience. You can share this link in Klaviyo, Mailchimp, SMS campaigns, or anywhere else — customers click it and answer without visiting your store.

How to generate a link

  1. Go to your project and open the Install tab.
  2. Scroll to the Share Link section.
  3. Click Generate Link — a unique URL is created and copied to your clipboard.
  4. Paste the URL into your email or SMS template.
  5. Share it. Responses collected through the link appear in your Analytics dashboard alongside widget responses.

Common use cases

Post-purchase email flows

Trigger the link in Klaviyo 1–3 days after delivery for higher-intent responses.

SMS campaigns

Short URL + minimal friction — works especially well for NPS and attribution surveys.

Panel or community outreach

Send to your customer advisory panel or loyalty program subscribers.

Retargeting audiences

Embed the link in a Facebook/Meta ad or retargeting email to validate paid attribution.

Rotating the link

Click Rotate Link if you need to invalidate the current URL (e.g. after it was shared publicly by mistake). The old link immediately returns a 404. A new link is generated and displayed — update your templates before re-sending.

Identifying respondents

By default, share link responses are anonymous — UTM attribution is captured but no individual customer is identified. To link a response to a specific customer, append an email or customer ID to the URL. rauxdata hashes the email client-side (SHA-256) before storing it — the raw address is never sent to the server.

  • By email — append ?email={{ email | url_encode }} (Klaviyo syntax). rauxdata hashes it before submission. Example: https://app.rauxdata.com/s/AbCdEf123?email=jane%40example.com
  • By customer ID — append ?customer_id={{ customer.id }} (any platform). The value is stored as-is against the response. Example: https://app.rauxdata.com/s/AbCdEf123?customer_id=cust_12345
  • Both params can be combined in the same URL — rauxdata stores whichever are present.
  • Identified responses appear in Analytics and exports with the same customerEmailHash / customerId fields as widget responses, and participate in deduplication (one response per customer per 90 days).
Note: The share link renders the currently published survey config. If you publish a new survey version, the link automatically serves the updated questions. Responses from the link appear in Analytics with the same attribution fields (UTM, referrer) captured from the URL when the customer clicks it.

Per-Question Integrations

Automatically send Klaviyo events based on individual survey answers — with automatic email resolution.

What are Per-Question Integrations?

Per-Question Integrations let you attach Klaviyo event triggers to individual survey questions. When a respondent answers a question, rauxdata fires a Klaviyo metric event — optionally filtered by specific answer values. This enables powerful automation: welcome flows for customers who found you via Instagram, segmentation by purchase motivation, or loyalty campaigns triggered by NPS promoters.

Setting Up Klaviyo

  1. Go to Settings → Integrations in the sidebar.
  2. Select the project you want to connect.
  3. Enter your Klaviyo Private API key (found in Klaviyo → Settings → API Keys).
  4. Choose your region (US or EU) and click Connect.
  5. Optionally click Test connection to verify the key is valid.

Adding a Trigger to a Question

Once Klaviyo is connected, open any question card in the Survey Builder → Integrations section. Click "Add Klaviyo trigger" to configure: the event name (sent as a Klaviyo metric), an optional answer filter (fire only for specific answers), and optional static profile properties to attach to the event.

How Email Resolution Works

Klaviyo events are most powerful when they are linked to a customer profile. rauxdata resolves the respondent's email automatically using a 3-step cascade:

Scenario 1 — Email question in the survey

If the survey contains a question of type "Email" and the respondent answered it, that answer is used as the profile email. This is the most reliable method.

Survey has question: "What's your email?" → respondent types "[email protected]" → Klaviyo event is linked to [email protected].

Scenario 2 — Shopify order lookup

If the survey response includes a Shopify order ID (automatically captured when using the Shopify integration) and Shopify is connected, rauxdata looks up the buyer's email from that order via the Shopify Admin API.

No email question in survey, but Shopify is connected and the order has orderId=1234 → rauxdata fetches order #1234 → uses the buyer's email from the order.

Scenario 3 — Anonymous event

If neither an email question answer nor a Shopify order is available, the event is fired anonymously. The Klaviyo event still includes all answer properties and the emailSource="anonymous" field — useful for aggregate analytics even without profile enrichment.

No email question, no Shopify orderId → Klaviyo receives the event with properties but without a profile.email field.

Answer Filters

Answer filters let you fire an event only when the respondent chose a specific answer. For example, if your question is "How did you find us?" with options Instagram, Google, TikTok, you can create one trigger per channel — each with a different event name and filter. Leave the filter empty to fire on any answer.

Example: trigger "Discovered via Instagram" fires only when answer = "Instagram". Trigger "Discovered via Google" fires only when answer = "Google". No trigger fires if the answer is "TikTok" and no TikTok trigger is configured.

emailSource property: Every Klaviyo event fired by rauxdata includes an emailSource property (survey | shopify | anonymous). Use it in Klaviyo to segment your automation flows by how confidently the profile was identified.

Webhooks

Send survey responses to any external system in real time — Zapier, Make, Slack, your own backend, or any URL.

Setting Up a Webhook

  1. Open your project and go to the Webhooks tab.
  2. Click Add webhook.
  3. Paste your endpoint URL (must be publicly accessible and return a 2xx status).
  4. Optionally add a secret — rauxdata will send it as a header for verification.
  5. Toggle the webhook Enabled.
  6. Click Save all.

Payload Format

rauxdata sends a POST request to your URL every time a new response is submitted. The body is JSON:

{
  "event": "response.created",
  "projectId": "proj_abc123",
  "response": {
    "id": "resp_xyz789",
    "answers": [
      {
        "questionId": "q1",
        "label": "How did you hear about us?",
        "answer": "Instagram"
      },
      {
        "questionId": "q2",
        "label": "Was it a paid ad or organic?",
        "answer": "Paid ad"
      }
    ],
    "utmSource": "instagram",
    "utmMedium": "paid",
    "utmCampaign": "summer_sale",
    "createdAt": "2026-05-19T14:32:00.000Z"
  }
}

Verifying Webhook Authenticity

If you provided a secret when setting up the webhook, rauxdata sends it in the X-RAUX-Secret header. Verify it on your server before processing the payload.

Common Integrations

Zapier

Create a Zap with 'Webhook by Zapier' as the trigger → Catch Hook. Copy the generated URL into rauxdata.

Make (Integromat)

Create a scenario with a Webhook module. Copy the URL and paste it into rauxdata's Webhooks tab.

Slack

Use Make or Zapier to parse the payload and post a formatted message to your Slack channel for each new response.

Zapier Integration

Connect rauxdata to 5,000+ apps with native Zapier triggers — no code required.

What is the Zapier integration?

The native Zapier integration lets you send rauxdata survey responses and purchase events to thousands of tools — CRMs, email platforms, spreadsheets, Slack, and more — without writing a single line of code. Unlike manual webhooks (which require a server to receive requests), the native integration appears directly in Zapier's trigger picker so anyone on your team can build a Zap in minutes.

How to connect

  1. Open your project in rauxdata and go to the Zapier tab.
  2. Create an API key if you don't have one (click New API key).
  3. In Zapier, create a new Zap and search for "rauxdata" in the trigger app picker.
  4. Choose a trigger event (see below) and paste your API key when prompted.
  5. Zapier will pull a sample response to verify the connection — then your Zap is live.

Available triggers

New Survey Response

Fires when a visitor submits any survey response. Payload includes all question answers, UTM data, referrer URL, browser, device, and timestamp.

New Purchase Event

Fires when RAUX.track('purchase', {...}) is called on your site. Payload includes orderId, revenue, currency, and UTM attribution data.

Zapier vs. manual webhooks

  • Native Zapier: appears in Zapier's trigger picker, no server needed, Zapier manages the subscription lifecycle for you.
  • Manual webhook: you provide any HTTPS endpoint — works with Make, n8n, your own server, or "Webhook by Zapier". See the Webhooks section.
Marketplace status: The native rauxdata app is pending Zapier marketplace approval (typically 1–4 weeks). In the meantime you can use "Webhook by Zapier" as described in the Webhooks section — the payload format is identical.

Public REST API

Query your response data programmatically using a Bearer-token API key.

Get your API key

  1. Open your project in the dashboard.
  2. Go to the Install tab → scroll to the API Key section.
  3. Click Generate API Key. The key is shown once — copy it immediately.
  4. The key starts with rak_ and is scoped to the project it was created in.

Endpoint

All requests must include an Authorization header with the Bearer scheme. The base URL is your rauxdata backend domain.

GET /v1/public/responses?eventType=survey&page=1&limit=50

Authorization: Bearer rak_your_api_key_here

Query parameters

ParameterTypeDescription
eventTypestringFilter by event type. Use survey to return only survey responses (omits view and start events).
utmSourcestringExact match on UTM source (e.g. google, instagram).
utmMediumstringExact match on UTM medium (e.g. cpc, organic, email).
utmCampaignstringExact match on UTM campaign name.
customerTypenew | returningFilter by customer type. Requires data-customer-type on the embed script.
fromISO 8601Return only responses created on or after this date (e.g. 2026-05-01T00:00:00.000Z).
toISO 8601Return only responses created on or before this date.
pagenumberPage number, starting at 1 (default: 1).
limitnumberResults per page, max 100 (default: 50).

Response shape

{
  "data": [
    {
      "id": "clx...",
      "projectId": "clx...",
      "eventType": "survey",
      "answer": [
        { "questionId": "q1", "label": "How did you hear about us?", "answer": "Instagram" }
      ],
      "utmSource": "instagram",
      "utmMedium": "paid",
      "utmCampaign": "summer-2026",
      "referrer": "https://instagram.com",
      "revenue": null,
      "currency": null,
      "orderId": null,
      "customerType": "new",
      "createdAt": "2026-05-22T14:32:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 50,
    "total": 243,
    "totalPages": 5
  }
}
Rate limiting: The public API shares the same rate limiter as the widget endpoint (20 requests per minute per IP). For bulk exports, prefer the CSV export button in the dashboard.

Team & Workspace

Collaborate with your marketing team or give clients access to their own workspace.

Inviting Team Members

  1. Go to Settings → Team in the sidebar.
  2. Click Invite member.
  3. Enter their email address.
  4. They'll receive an email with an invitation link to join your workspace.

Roles

Owner

Full access. Can manage billing, invite/remove members, create and delete projects, and modify all settings.

Admin

Can manage projects, surveys, and view analytics. Cannot manage billing or remove the Owner.

Viewer

Read-only access to analytics and responses. Cannot modify surveys or settings.

Workspace Settings

Workspace-level settings (name, domain, billing, and business profile) are accessible via Settings → Workspace. Only the Workspace Owner can access billing and danger-zone actions (like deleting the workspace). The Profile card lets you update your onboarding answers at any time — industry, platform, revenue range, and attribution reporting process for agencies.

Notifications

rauxdata surfaces important events in two ways. In-app: a bell icon in the top-right header shows your unread count. Clicking it opens a panel with recent notifications — NPS detractor alerts, response milestones (100 / 500 / 1 000 responses), and usage warnings when you reach 80 % of your monthly limit. By email: under Settings → Workspace → Notifications, the Workspace Owner can enable a weekly attribution digest sent every Monday at 8 AM UTC with total responses, week-over-week change, top 3 acquisition channels, and match rate. The digest is only sent if at least one response was recorded in the last 7 days.

Multiple Workspaces (Agency)

Workspaces are your boundary for client access and isolation: each one has its own branding and team members. Create a separate workspace per client when you plan to invite that client's own team to it — that way each client only sees their own projects and data. If you're not giving clients direct access, a single workspace can hold projects from several clients at once; group them however you like — by industry, region, or any reason that fits how you work. Use the workspace switcher at the top of the sidebar to switch between workspaces, and you can move a project from one of your workspaces to another at any time from the project's settings (Owner only). Billing is not separate per workspace — it's account-level: a single plan covers all of your workspaces, and only the Owner can see or manage it.

Billing

Manage your plan, upgrade, and view your current usage.

Accessing Billing

Click Billing in the sidebar. Here you can see your current plan, response usage, and upgrade options.

Plans

Founder

Early-access plan for founding customers.

$10/mo

Growth

Core attribution and NPS for growing DTC brands.

$19/mo

Brand Pro

Signals, webhooks, and advanced analytics.

$49/mo

Agency Starter

Multiple client workspaces with white-label branding.

$199/mo

Agency Scale

High-volume agency with priority support.

$499/mo

Response Limits

Each plan includes a monthly response quota. You can see your current usage in the Billing page. When you approach your limit:

  • The widget continues to show on your store — no interruption for customers.
  • New responses are rejected once the quota is reached.
  • You will receive an email alert when nearing the limit.
  • You can purchase response add-ons (10,000 responses per unit) from the Billing page without upgrading your plan.

Upgrading

  1. Go to Billing in the sidebar.
  2. Click Upgrade plan or Manage subscription.
  3. You will be redirected to a secure checkout page.
  4. After payment, your workspace is upgraded instantly.

For questions about billing, contact us at [email protected].

Data Export

Your response data is yours. Export it at any time in CSV or JSON format.

Exporting Responses

  1. Open your project and go to the Install tab.
  2. Scroll to the Export responses section.
  3. Click CSV or JSON to download all responses.

CSV Format

The CSV export includes one row per response with columns for:

  • Response ID and timestamp
  • All survey answers (one column per question label)
  • UTM source, medium, campaign
  • Referrer URL
  • Revenue, currency, and order ID (when purchase tracking is active)
  • Customer type (new or returning)
  • Browser and device

JSON Format

The JSON export provides the full structured response object, identical to the webhook payload format. Ideal for importing into data warehouses or custom analysis tools.

API access: Agency plan users can also query responses programmatically via the REST API. See the API tab in your project settings for your API key and endpoint documentation.

Agency Onboarding

How the setup wizard works for agency workspaces.

Workspace Type Selection (Step 0)

When you create a new workspace, the setup wizard starts with a "What best describes you?" screen. Select "I manage clients as an agency" to unlock the agency-specific profile steps.

Step 1 — Agency Portfolio

  • Portfolio size: How many active clients you manage (1-5, 6-15, 16-50, 50+).
  • Main verticals: The industries your clients operate in (DTC, Retail, CPG, Beauty, Fashion, Food, Mixed).

Step 2 — How You Work

  • Reporting process: How you currently report attribution results to your clients (manual, platform-native tools, a dedicated reporting tool, or no formal process).
  • How you found us: The acquisition channel that brought you to rauxdata.

Per-Project Client Profile

When creating a new project in an agency workspace, you can optionally fill in a client profile to help tailor the experience. All fields are optional — you can skip this step without blocking project creation.

  • Industry: The client's industry vertical.
  • Platform: The e-commerce platform the client uses.
  • Revenue range: Approximate monthly revenue in USD.
Note: The agency profile can be updated at any time from Settings → Workspace → Profile. The client profile for each project is editable from the project's Client tab.

FAQ

Common questions, answered.

Still have questions?

We're here to help. Reach out and we'll get back to you quickly.

Contact Support
Help & Documentation | rauxdata | rauxdata