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¶
- iOS SDK — Swift package for native iOS apps
- Android SDK — Gradle dependency for Android apps
- React Native SDK — Cross-platform SDK
- Flutter SDK — Dart package for Flutter apps
2. Email Campaigns¶
Send surveys via email using the Resend integration.
Creating an Email Campaign¶
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)
3. Direct Links¶
Share survey links on social media, Slack, or your website.
Generating a Shareable Link¶
Link format:
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=lightortheme=dark— Control appearancehide_branding=true— Remove Canviq footer (Enterprise only)
Delivery Tracking¶
Monitor survey delivery across all channels:
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:
Response Rate:
Completion Rate:
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:
This allows users to submit multiple times (tracked with timestamps).
Best Practices¶
In-Product Distribution¶
- Target the right moment — Survey after task completion (e.g., after submitting feedback)
- Use non-intrusive UI — Bottom-right widget, dismissible banner
- Respect fatigue limits — Max 1 survey per week per user
- Show progress — "Question 2 of 5" keeps users engaged
Email Distribution¶
- Personalize — Use merge tags for name, plan, etc.
- Clear CTA — "Take the 3-minute survey" button
- Mobile-friendly — 50%+ of emails are opened on mobile
- Unsubscribe link — Required by GDPR, reduces spam complaints
Link Sharing¶
- Context matters — Share with a message explaining why
- Track channels — Use UTM parameters to identify sources
- Set expectations — "Takes ~3 minutes" manages time expectations
- 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:
Example report:
| Source | Impressions | Response Rate |
|---|---|---|
| 1200 | 8% | |
| slack | 300 | 22% |
| 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.