Skip to content

Survey Distribution

!!! info "TL;DR" Distribute surveys via in-product SDK (JavaScript, React, iOS, Android), email campaigns (Resend integration), or direct links. Track delivery, response rates, and completion across channels.

Distribution Channels

1. In-Product SDK

Embed surveys directly in your product using platform-specific SDKs.

JavaScript SDK

import CanviqSurvey from '@canviq/survey-js'

CanviqSurvey.init({
  apiKey: 'ck_live_...',
  userId: 'user_123',
  properties: {
    plan: 'pro',
    country: 'US',
  },
})

// Show survey matching targeting criteria
CanviqSurvey.showSurvey({ surveyId: 'srv_...' })

See JavaScript SDK Guide for full documentation.

React SDK

import { SurveyProvider, SurveyWidget } from '@canviq/survey-react'

function App() {
  return (
    <SurveyProvider apiKey="ck_live_...">
      <SurveyWidget position="bottom-right" />
    </SurveyProvider>
  )
}

See React SDK Guide for full documentation.

Mobile SDKs

2. Email Campaigns

Send surveys via email using the Resend integration.

Creating an Email Campaign

Admin Dashboard → Surveys → [Your Survey] → Distribute → Email

Configure:

  • Recipient list — Upload CSV or select user segment
  • Subject line — Multilingual subject (supports merge tags)
  • Email body — Rich text editor with survey link button
  • Send schedule — Immediate or scheduled send
  • Reply-to — Email address for replies

Email Template Example

Subject: We'd love your feedback on the mobile app Hi {{user.name}}, We're
working to improve the Canviq mobile app experience. Your feedback helps us
prioritize what matters most. [Take the 3-minute survey] Thanks, The Canviq Team
P.S. You can unsubscribe from future surveys at any time.

Merge tags:

  • {{user.name}} — User's display name
  • {{user.email}} — User's email
  • {{survey.title}} — Survey title
  • {{survey.url}} — Unique survey link (tracked per user)

Share survey links on social media, Slack, or your website.

Admin Dashboard → Surveys → [Your Survey] → Share Link

Link format:

https://canviq.app/survey/srv_1234567890abcdef

Options:

  • Public — Anyone with the link can respond (anonymous)
  • Private — Requires authentication (logged-in users only)
  • One-time — Each link works once (useful for unique codes)

Embed Survey on Website

<iframe
  src="https://canviq.app/survey/srv_1234567890abcdef/embed"
  width="100%"
  height="600"
  frameborder="0"
></iframe>

Embed options:

  • theme=light or theme=dark — Control appearance
  • hide_branding=true — Remove Canviq footer (Enterprise only)

Delivery Tracking

Monitor survey delivery across all channels:

Admin Dashboard → Surveys → [Your Survey] → Delivery

Metrics:

Metric Description
Impressions Users who saw the survey
Started Users who clicked "Start Survey"
Completed Users who submitted all required fields
Abandoned Users who started but didn't finish
Opt-Out Users who clicked "Don't show again"

Delivery Rate:

Delivery Rate = (Impressions / Target Audience) × 100

Response Rate:

Response Rate = (Completed / Impressions) × 100

Completion Rate:

Completion Rate = (Completed / Started) × 100

Multi-Channel Distribution

Combine channels for maximum reach.

Example Strategy

Phase 1 (Days 1-3): In-product SDK for active users
  - Trigger: feature_used = "roadmap"
  - Expected: 500 impressions, 25% response rate

Phase 2 (Day 4): Email to non-responders
  - Target: Users who saw but didn't complete survey
  - Expected: 200 emails, 10% response rate

Phase 3 (Day 7): Reminder email
  - Target: Users who started but didn't finish
  - Expected: 50 emails, 30% completion rate

Total responses: 125 (SDK) + 20 (Email) + 15 (Reminder) = 160 responses

Response Deduplication

Canviq automatically deduplicates responses:

  • Logged-in users — One response per user per survey (tracked via user_id)
  • Anonymous users — One response per device (tracked via cookie)
  • Email campaigns — One response per unique link (tracked via link token)

Allowing Multiple Responses

For recurring surveys (e.g., monthly check-ins), enable multiple responses:

Survey Settings → Type → Recurring

This allows users to submit multiple times (tracked with timestamps).

Best Practices

In-Product Distribution

  1. Target the right moment — Survey after task completion (e.g., after submitting feedback)
  2. Use non-intrusive UI — Bottom-right widget, dismissible banner
  3. Respect fatigue limits — Max 1 survey per week per user
  4. Show progress — "Question 2 of 5" keeps users engaged

Email Distribution

  1. Personalize — Use merge tags for name, plan, etc.
  2. Clear CTA — "Take the 3-minute survey" button
  3. Mobile-friendly — 50%+ of emails are opened on mobile
  4. Unsubscribe link — Required by GDPR, reduces spam complaints
  1. Context matters — Share with a message explaining why
  2. Track channels — Use UTM parameters to identify sources
  3. Set expectations — "Takes ~3 minutes" manages time expectations
  4. Incentivize — Offer rewards for completion (e.g., early access)

UTM Tracking

Add UTM parameters to track survey sources:

https://canviq.app/survey/srv_.../embed?utm_source=twitter&utm_medium=social&utm_campaign=mobile_feedback

View UTM performance:

Admin Dashboard → Surveys → [Your Survey] → Delivery → By Source

Example report:

Source Impressions Response Rate
twitter 1200 8%
slack 300 22%
email 500 15%

Advanced: Conditional Distribution

Show different surveys based on user behavior.

Example: NPS Survey Sequence

Trigger: submission_created
Survey: "How satisfied are you with the feedback process?" (NPS)

If NPS ≥ 9 (Promoter):
  → Show: "What do you love most?" (open-ended)

If NPS ≤ 6 (Detractor):
  → Show: "What can we improve?" (open-ended)

This creates a branching survey flow based on responses.

Next Steps


Tip: Start with in-product distribution for highest response rates. Follow up with email for non-responders.