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.
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.
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.
- On first login you'll be prompted to name your workspace.
- Enter your brand name and confirm.
- For agencies: create additional workspaces from Settings → Create workspace.
Create a project
A project corresponds to one website or store. Each project has its own survey, widget, and analytics.
- Navigate to Settings in the sidebar.
- Click New project.
- Enter a name and your store domain (e.g. mystore.myshopify.com).
- Click Create.
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 .
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?".
- In the Survey tab, open a question card and click Routing.
- For each option, select the target question from the dropdown (or "End survey").
- 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
- Every save in the Survey Editor writes to a private draft — live customers always see the last published version.
- An "Unpublished changes" badge appears in the toolbar whenever your draft differs from the published version.
- Click Publish to push your draft live. The widget cache updates automatically within seconds.
- 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.
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.
- Open your project and go to the Install tab.
- Select your platform from the dropdown (Shopify, WooCommerce, Hotmart, or General).
- Click the copy icon next to the script tag.
- 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.
- Open your project → Install tab → Connect with Shopify.
- Enter your store domain (e.g. mystore.myshopify.com) and click Connect.
- Approve the permissions on Shopify. rauxdata requests read_orders and read_customers — these power automatic revenue capture and customer-level deduplication.
- Back in rauxdata the status shows "Pending embed". In Shopify → Online Store → Themes → Customize → App embeds, turn on rauxdata.
- The status turns green when the widget loads on your store.
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
- After installing, open your store in a browser.
- Append ?raux_debug=true to the URL to force the widget to appear.
- Back in the rauxdata dashboard, the connection status in the Install tab should update to Active (green dot) within a few seconds.
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
- Open your project → Design & Branding tab.
- Scroll to the Custom CSS section at the bottom.
- Type or paste your CSS into the textarea (max 10,000 characters).
- Click Save Visuals. The widget cache refreshes automatically.
- Use ?raux_debug=true on your store to preview the changes instantly.
Available CSS classes
| Class | Targets |
|---|---|
| .raux-overlay | Overlay backdrop (fixed, full-screen) |
| .raux-card | Modal card container |
| .raux-logo | Brand logo image |
| .raux-question | Question text |
| .raux-options | Options / buttons wrapper |
| .raux-option | Individual answer button |
| .raux-select | Dropdown <select> |
| .raux-input-group | Text-input wrapper |
| .raux-input | Text <input> |
| .raux-submit | Submit / Next / Send button |
| .raux-close | Close / Previous button |
| .raux-steps | Progress dots container |
| .raux-dot | Single progress dot |
| .raux-thankyou | Thank-you screen wrapper |
| .raux-thankyou-icon | Thank-you checkmark icon |
| .raux-thankyou-title | Thank-you title text |
| .raux-thankyou-subtitle | Thank-you subtitle text |
| .raux-other | "Other" input container |
| .raux-other-label | "Other" label text |
| .raux-nps-wrapper | NPS scale outer wrapper |
| .raux-star-wrapper | Star-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; }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.
/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
- Go to your project → Audience tab.
- Click Add rule and select an attribute (Customer type, Order count, Total spent, or Tags).
- Choose an operator (equals, greater than, contains, etc.) and set a value.
- Add multiple rules and choose Match ALL or Match ANY.
- Click Save. The widget config updates immediately.
- Remove all rules to go back to showing the survey to everyone.
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.
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
- Audience — Segment by All customers, New customers (first-time buyers), or Returning customers. Default: All.
- Question — Select 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 range — Filters by purchase date (orderPlacedAt), not by survey submission date. Leave empty to include all dates.
- Currency — Select 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 Orders — Count of distinct orders in the selected currency scope.
- Total Revenue — Sum of revenue across all attributed orders in the selected currency.
- Orders with Response — Count of orders linked to a survey response that includes an answer for the selected question.
- Attribution Rate — Orders 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.
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.
| Role | Access |
|---|---|
| Owner | Full read access to all Order Attribution data and configuration. |
| Admin | Full read access to all Order Attribution data and configuration. |
| Viewer | Read access to Order Attribution data. Cannot modify project settings. |
| Anonymous | No access. Authentication required. |
Glossary
- Attribution — The process of linking a survey response to a specific purchase order, enabling you to measure revenue impact per answer option.
- UTM / Last-Click — A 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 Data — Data 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.
- Mismatch — When 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 Response — A 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
- Open the Analytics page for your workspace. The Live Feed panel appears in the lower section.
- The connection status dot turns green ("Live") once the SSE stream is established.
- Each new response card slides in at the top. The panel keeps the last 20 responses.
- If the connection drops (e.g. network interruption), the dot turns yellow ("Reconnecting...") and the browser reconnects automatically.
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.
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
- Go to your project and open the Install tab.
- Scroll to the Share Link section.
- Click Generate Link — a unique URL is created and copied to your clipboard.
- Paste the URL into your email or SMS template.
- 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).
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
- Go to Settings → Integrations in the sidebar.
- Select the project you want to connect.
- Enter your Klaviyo Private API key (found in Klaviyo → Settings → API Keys).
- Choose your region (US or EU) and click Connect.
- 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.
Webhooks
Send survey responses to any external system in real time — Zapier, Make, Slack, your own backend, or any URL.
Setting Up a Webhook
- Open your project and go to the Webhooks tab.
- Click Add webhook.
- Paste your endpoint URL (must be publicly accessible and return a 2xx status).
- Optionally add a secret — rauxdata will send it as a header for verification.
- Toggle the webhook Enabled.
- 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
- Open your project in rauxdata and go to the Zapier tab.
- Create an API key if you don't have one (click New API key).
- In Zapier, create a new Zap and search for "rauxdata" in the trigger app picker.
- Choose a trigger event (see below) and paste your API key when prompted.
- 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.
Public REST API
Query your response data programmatically using a Bearer-token API key.
Get your API key
- Open your project in the dashboard.
- Go to the Install tab → scroll to the API Key section.
- Click Generate API Key. The key is shown once — copy it immediately.
- 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
| Parameter | Type | Description |
|---|---|---|
eventType | string | Filter by event type. Use survey to return only survey responses (omits view and start events). |
utmSource | string | Exact match on UTM source (e.g. google, instagram). |
utmMedium | string | Exact match on UTM medium (e.g. cpc, organic, email). |
utmCampaign | string | Exact match on UTM campaign name. |
customerType | new | returning | Filter by customer type. Requires data-customer-type on the embed script. |
from | ISO 8601 | Return only responses created on or after this date (e.g. 2026-05-01T00:00:00.000Z). |
to | ISO 8601 | Return only responses created on or before this date. |
page | number | Page number, starting at 1 (default: 1). |
limit | number | Results 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
}
}Team & Workspace
Collaborate with your marketing team or give clients access to their own workspace.
Inviting Team Members
- Go to Settings → Team in the sidebar.
- Click Invite member.
- Enter their email address.
- They'll receive an email with an invitation link to join your workspace.
Roles
Full access. Can manage billing, invite/remove members, create and delete projects, and modify all settings.
Can manage projects, surveys, and view analytics. Cannot manage billing or remove the Owner.
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.
Growth
Core attribution and NPS for growing DTC brands.
Brand Pro
Signals, webhooks, and advanced analytics.
Agency Starter
Multiple client workspaces with white-label branding.
Agency Scale
High-volume agency with priority support.
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
- Go to Billing in the sidebar.
- Click Upgrade plan or Manage subscription.
- You will be redirected to a secure checkout page.
- 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
- Open your project and go to the Install tab.
- Scroll to the Export responses section.
- 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.
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.
FAQ
Common questions, answered.
Still have questions?
We're here to help. Reach out and we'll get back to you quickly.
Contact Support