Tenant Guide
Welcome to the Tenant Guide for the Cimigo Collect Platform. This section is designed for organizations and developers who want to:
- 🚀 Integrate surveys into web applications
- 📊 Collect and analyze survey responses
- 🎨 Customize survey appearance and branding
- 🔗 Manage survey distribution and links
- 📡 Integrate with existing systems via APIs and webhooks
🚦 Quick Start for Tenants
What You Need
- Tenant Account - Contact Cimigo for platform access
- API Credentials - Tenant ID and API keys
- Web Application - Where you'll embed or link surveys
- Basic JavaScript Knowledge - For SDK integration
5-Minute Integration
// 1. Install the JavaScript SDK
npm install @cimigo/collect-sdk
// 2. Initialize the SDK
import { CimigoCollect } from '@cimigo/collect-sdk';
const collect = new CimigoCollect({
apiBaseUrl: 'https://collect-api.cimigo.online',
tenantId: 'your-tenant-id-here'
});
// 3. Show a survey
await collect.showSurvey({
linkId: 'your-survey-link-id',
mode: 'widget', // or 'iframe' or 'inline'
theme: {
primaryColor: '#1976d2',
logoUrl: 'https://your-company.com/logo.png'
}
});
That's it! Your survey is now embedded and collecting responses.
See Complete SDK Guide → (coming soon)
🎯 Integration Paths
Choose the integration approach that best fits your needs:
🌐 JavaScript SDK (Recommended)
Best for: Web applications, SPAs, custom integrations
Benefits:
- ✅ Easy integration with any framework
- ✅ Customizable themes and branding
- ✅ Multiple display modes (widget, iframe, inline)
- ✅ Real-time response handling
- ✅ TypeScript support
JavaScript SDK Guide → (coming soon)
🔗 Direct Links
Best for: Email campaigns, social media, simple distribution
Benefits:
- ✅ No coding required
- ✅ Easy to share and distribute
- ✅ Supports personalized parameters
- ✅ Mobile-optimized rendering
- ✅ Automatic response tracking
Link Management Guide → (coming soon)
🔌 Direct API Integration
Best for: Backend systems, mobile apps, custom workflows
Benefits:
- ✅ Full programmatic control
- ✅ Backend-to-backend integration
- ✅ Custom data processing
- ✅ Bulk operations support
- ✅ Advanced authentication
API Integration Guide → (coming soon)
📚 Tenant Guide Sections
🚀 Getting Started
Quick integration and first steps:
- Quick Start - 5-minute survey integration (coming soon)
- Authentication Setup - API keys and tenant configuration
- First Survey - Creating and deploying your first survey
- Integration Testing - Validating your integration
🛠️ JavaScript SDK
Complete SDK integration guide:
- SDK Overview - Features and capabilities
- Getting Started - Installation and basic usage
- Configuration - All configuration options
- Display Modes - Widget, iframe, and inline modes
- Event Handling - Response handling and callbacks
- Framework Integration - React, Vue, Angular examples
- Troubleshooting - Common issues and solutions
📊 Survey Management
Creating and managing effective surveys:
- Survey Creation - Building surveys with the question editor
- Question Types - All supported question types with examples
- Survey Logic - Dynamic questions and branching
- Multi-language - Creating multilingual surveys
- Preview & Testing - Testing surveys before launch
- Version Management - Managing survey updates
🔗 Distribution & Links
Managing survey distribution:
- Link Management - Creating and managing survey links
- Personalization - Custom parameters and pre-filling
- Access Control - Password protection and expiration
- Tracking & Analytics - Response tracking and completion rates
📈 Response Management
Collecting and analyzing survey data:
- Response Collection - How responses are captured and stored
- Data Export - Downloading and analyzing response data
- Real-time Monitoring - Tracking responses as they arrive
- Data Quality - Validation and cleaning strategies
🔔 Integration & Webhooks
Connecting with your systems:
- Webhook Setup - Real-time response notifications
- API Integration - Direct backend integration
- Data Synchronization - Keeping data in sync
- Security - Secure integration patterns
🎨 Customization & Branding
Making surveys match your brand:
- Theme Customization - Colors, fonts, and styling
- Logo & Branding - Adding your company branding
- Custom CSS - Advanced styling options
- White Labeling - Complete brand customization
💡 Common Use Cases
📋 Customer Satisfaction Surveys
Perfect for measuring customer experience and NPS:
// Customer satisfaction with NPS question
const satisfactionSurvey = {
questions: [
{
type: 'nps',
title: 'How likely are you to recommend us?',
required: true
},
{
type: 'textarea',
title: 'What could we improve?',
maxLength: 500
}
]
};
// Show survey after purchase
await collect.showSurvey({
linkId: 'post-purchase-nps',
mode: 'widget',
trigger: 'purchase_complete'
});
📊 Market Research Surveys
Comprehensive data collection with complex question types:
// Market research with matrix questions
const marketResearch = {
questions: [
{
type: 'matrix',
title: 'Rate these product features',
scale: { from: 1, to: 5 },
attributes: [
{ label: 'Ease of use' },
{ label: 'Value for money' },
{ label: 'Customer support' }
]
}
]
};
🏢 Employee Feedback Surveys
Internal surveys with multi-language support:
// Employee engagement survey
await collect.showSurvey({
linkId: 'employee-engagement-q3',
mode: 'inline',
locale: 'en', // or 'es', 'fr', etc.
personalization: {
employee_id: currentUser.id,
department: currentUser.department
}
});
🎯 Lead Generation Forms
Collecting contact information with progressive profiling:
// Lead generation with conditional logic
const leadForm = {
questions: [
{
type: 'text',
title: 'What\'s your company name?',
required: true
},
{
type: 'single',
title: 'Company size?',
options: ['1-10', '11-50', '51-200', '200+'],
visibleIf: { dependsOn: 'company_name', hasValue: true }
}
]
};
🔧 SDK Integration Examples
React Integration
import { useCimigoCollect } from '@cimigo/collect-react';
function SurveyButton() {
const { showSurvey, isLoading } = useCimigoCollect({
tenantId: 'your-tenant-id'
});
const handleShowSurvey = async () => {
await showSurvey({
linkId: 'feedback-survey',
mode: 'widget',
onComplete: (response) => {
console.log('Survey completed!', response);
// Handle response
}
});
};
return (
<button onClick={handleShowSurvey} disabled={isLoading}>
{isLoading ? 'Loading...' : 'Take Survey'}
</button>
);
}
Vue Integration
<template>
<button @click="showFeedbackSurvey" :disabled="loading">
Take Survey
</button>
</template>
<script>
import { CimigoCollect } from '@cimigo/collect-sdk';
export default {
data() {
return {
collect: null,
loading: false
};
},
mounted() {
this.collect = new CimigoCollect({
tenantId: 'your-tenant-id'
});
},
methods: {
async showFeedbackSurvey() {
this.loading = true;
try {
await this.collect.showSurvey({
linkId: 'feedback-survey',
mode: 'widget'
});
} finally {
this.loading = false;
}
}
}
};
</script>
Angular Integration
import { Component } from '@angular/core';
import { CimigoCollect } from '@cimigo/collect-sdk';
@Component({
selector: 'app-survey',
template: `
<button (click)="showSurvey()" [disabled]="loading">
Take Survey
</button>
`
})
export class SurveyComponent {
private collect: CimigoCollect;
loading = false;
constructor() {
this.collect = new CimigoCollect({
tenantId: 'your-tenant-id'
});
}
async showSurvey() {
this.loading = true;
try {
await this.collect.showSurvey({
linkId: 'feedback-survey',
mode: 'widget'
});
} finally {
this.loading = false;
}
}
}
📊 Analytics & Reporting
Response Tracking
// Track survey responses in real-time
collect.on('response.submitted', (event) => {
console.log('New response:', event.data);
// Send to your analytics
analytics.track('Survey Completed', {
surveyId: event.surveyId,
responseId: event.responseId,
completionTime: event.completionTime
});
});
// Track survey interactions
collect.on('survey.started', (event) => {
analytics.track('Survey Started', {
surveyId: event.surveyId
});
});
Export Integration
// Automatic data export to your system
const exportConfig = {
webhook: {
url: 'https://your-api.com/survey-responses',
events: ['response.submitted'],
format: 'json'
},
exports: {
format: 'csv',
schedule: 'daily',
destination: 's3://your-bucket/survey-data/'
}
};
🔒 Security & Compliance
Data Privacy
- GDPR Compliance: Built-in data protection features
- Data Retention: Configurable retention policies
- Data Anonymization: Automatic PII scrubbing options
- Consent Management: Integrated consent collection
Security Features
- JWT Authentication: Secure token-based access
- HTTPS Only: All data transmission encrypted
- API Rate Limiting: Protection against abuse
- Audit Logging: Complete activity tracking
Access Control
// Role-based survey access
const restrictedSurvey = {
access: {
requireAuth: true,
allowedRoles: ['employee', 'contractor'],
maxResponses: 1 // One response per user
}
};
🆘 Support & Resources
Getting Help
- Tenant FAQ - Common questions and solutions (coming soon)
- SDK Troubleshooting - JavaScript integration issues (coming soon)
- API Documentation - Complete API reference (coming soon)
- Community Forum - Peer support and discussions
Useful Tools
- Survey Builder - Visual survey creation
- API Explorer - Interactive API documentation
- Response Dashboard - Real-time response monitoring
- Integration Tester - Validate your integration
Best Practices
- Survey Design - Creating effective surveys (coming soon)
- Integration Patterns - Proven integration approaches (coming soon)
- Performance Optimization - Fast, responsive surveys (coming soon)
- Accessibility - Inclusive survey design (coming soon)
🎉 Ready to Get Started?
Choose your next step based on your needs:
Welcome to the Cimigo Collect Platform! Start collecting valuable insights today. 🚀