# Welcome to encatch Documentation (/docs) ## Introduction encatch (en-catch) is a feedback platform that allows you to collect feedback from your users. You can seamlessly integrate it into your app or website using our SDKs. ## What is Next? } title="Developer Guide" href="/docs/developer-guide" description="Learn how to get started with encatch integration in your app or website" /> } title="Administrative Guide" description="Learn how to manage your encatch account and projects" href="/docs/administrative-guide" /> } title="Framework Examples" description="Learn how to use encatch with different frameworks" href="/docs/framework-examples" /> } title="General FAQ" description="Frequently Asked Questions" href="/docs/general-faq" /> # encatch Admin Guide (/docs/administrative-guide) ## Introduction encatch is a feedback platform that allows you to collect feedback from your users. You can seamlessly integrate it into your app or website using our SDKs. This section provides high-level guide for setting up, configuring, and managing your encatch platform. Whether you're an organization owner, project admin, or team member, you'll find detailed instructions for every aspect of the system. ## Platform Hierarchy The encatch platform follows a hierarchical structure that organizes your feedback collection and management: #### Organizations Organizations are the top-level entities in the encatch platform. They represent your company (or a group of companies in an enterprise setup) and provide a central point for managing your feedback collection and management across all projects / applications that you own. #### P - Projects Each project is like a container (logical isolation) for your application that you want to collect feedback from. You can choose to create one project for all channels like website, webapp, mobile app, etc (recommended). or create one project for each channel, if you have different teams handling different channels / want exclusive feedback management for each channel. #### F - Feedback Collections Feedback collections are the actual forms and surveys that collect user input. They can be embedded in your applications, websites, or distributed via various channels. #### D - Data Pipelines Currently, data pipelines include destinations such as email, Slack, Jira, GitLab, and webhook endpoints. They allow you to integrate the feedback received from your users into your existing tools and systems. You could use destinations are a means to notify or trigger workflows by calling the workflow webhooks. ## What is Next? } title="Organizations" href="/docs/administrative-guide/organization-management/overview" description="Set up your organization structure, manage team members, and configure role-based access control" /> {" "} } title="Projects" href="/docs/administrative-guide/project-management/overview" description="Create and manage projects, configure API keys, manage members, and control project settings" /> {" "} } title="Feedback Management" href="/docs/administrative-guide/feedback-management/overview" description="Design feedback forms, configure targeting rules, and analyze responses throughout the feedback lifecycle" /> {" "} } title="Integrations & Notifications" href="/docs/administrative-guide/data-pipelines/overview" description="Connect feedback to your tools with email notifications and database storage" /> # Quick Start (/docs/developer-guide) ## Get Started in Minutes Encatch provides everything you need to build, deploy, and scale your applications. Whether you're integrating our SDK, setting up data pipelines, working with APIs, or implementing AI features, we've got you covered. *** ## Choose Your Starting Point ### SDK Guide **Get up and running with the Encatch SDK** Learn how to integrate our JavaScript/TypeScript SDK into your applications. This section covers installation and setup, configuration options, authentication methods, core SDK features and methods, code examples and best practices, and advanced configuration options. Perfect for developers who want to integrate Encatch functionality directly into their web applications. **[Explore SDK Guide →](/docs/developer-guide/sdk-guides/web)** *** ### Administrative Guide **Manage your organization, projects, feedback forms, and data pipelines** Learn how to manage your organization, projects, feedback forms, and data pipelines in the application. This section includes organization management, project management, feedback management, and data pipeline management. **[Learn Administrative Guide →](/docs/administrative-guide)** *** ### 🔗 Data Pipelines **Build robust data processing workflows** Create and manage scalable data pipelines for your applications. This section includes pipeline architecture overview, data ingestion methods, transformation and processing, output destinations and formats, monitoring and debugging, and performance optimization. Ideal for teams working with large datasets and complex data workflows. **[Learn Data Pipelines →](/docs/developer-guide/data-pipelines/destination)** *** *Ready to gather feedback for your users and take action on it? Pick a section above and start your Encatch journey today!* # Rate Limits (/docs/developer-guide/rate-limits) We enforce rate limits to prevent abuse and ensure that the APIs (called from SDKs for feedback fetching and submission) is used fairly by all users. ### Rate Limit Enforcement The rate limits are applied on a combination of user's IP address and API key generated for the environment (test or production). The following table shows the rate limits for different API endpoints for each environment: |  Endpoint Name | Test Environment | Production Environment | | ------------------------------ | ---------------- | ---------------------- | |  List elligible feedback forms | 10 RPM | 200 RPM | |  Get feedback questions | 10 RPM | 80 RPM | |  Submit Feedback | 5 RPM | 40 RPM | |  Audit feedback viewed | 5 RPM | 80 RPM | |  Open sharable link | 5 RPM | 200 RPM | |  AI obfuscation | 5 RPM | 24 RPM | |  All other requests | 5 RPM | 50 RPM | RPM means requests per minute. #### Rate Limit Headers When you make requests to the API, you'll receive rate limit information in the response headers: * `X-RateLimit-Limit`: The maximum number of requests allowed per time window * `X-RateLimit-Remaining`: The number of requests remaining in the current time window * `X-RateLimit-Reset`: The time at which the current rate limit window resets (Unix timestamp in seconds) #### Handling Rate Limits When you exceed the rate limit, you'll receive a `429 Too Many Requests` response. You should: 1. Wait for the rate limit window to reset 2. Implement exponential backoff in your application 3. Consider caching responses to reduce API calls #### Best Practices * Monitor your rate limit usage through the response headers * Implement proper error handling for 429 responses * Use caching to minimize API calls * Reach out to us if your usecase requires customized rate limits # Test Mode (/docs/developer-guide/test-mode) Test Mode allows you to preview and validate your feedback forms before deploying them to production. It helps ensure that everything works correctly across different devices, browsers, and trigger configurations—without polluting real feedback data. *** ### Why Use Test Mode? * **Keep production reports clean:** Test submissions won’t appear in your production analytics or reports. * **Save credits:** Actions performed in test mode (such as viewing or submitting feedback or pipelines) do not consume production credits. * **Validate end-to-end flows:** Test all trigger types, integrations, and UI behavior before a public launch. *** ### How to Enable Test Mode 1. **Generate a Test API Key** * Go to your project’s **API Keys** section. * When creating a new key, select **Test** in the **Environment** dropdown. * Use a clear **Application Name** to identify test instances (e.g., `test-app-1`, `test-app-2`, etc.). 2. **Configure Feedback Form (Auto Trigger)** * In the feedback form configuration, map the **application names** associated with test keys. * This ensures that forms can be auto-triggered in test environments. 3. **Set Up SDK Configuration** * For both Auto and Manual triggers, use the **test API key** in your SDK setup. 1) Test Mode does not consume production credits. 2) Feedback actions such as submission or viewing, and data pipelines, are excluded from production usage. * Test Mode has lower rate limits than production. * Avoid including test keys in your production build / bundles / deployments. ### Rate Limits in Test Mode Refer to the [Rate Limits](/docs/developer-guide/rate-limits) guide for specific limits applied in Test Mode. *** ### What Is Covered in Test Mode? * Feedback form configuration (Auto trigger) mapped to test application names * Summary and reports for feedbacks received via test applications * Feedback reports (Audience Overview, Response Summary, Individual Reports, Export, Destinations) * Data pipelines enabled under test mode (not counted toward usage) 1. When manually triggered, a feedback form can open in both production and test mode. 2. **AI-powered message APIs** are always counted under production usage. Test Mode does not apply to AI messages. *** ## Switching Back to Production Mode 1. Go to your project’s **API Keys** section. 2. Generate a new API key and select **Production** in the **Environment** dropdown. 3. Update your **Feedback Form Configuration** to map production application names. 4. Update your **SDK configuration** to use the production API key. # Hello World 22 (/docs/framework-examples/hello) hello world22 # Overview (/docs/framework-examples) hello world ss # General FAQ (/docs/general-faq) ### General FAQ

The organization owner is the user who has created the organization. To change the organization owner, you need to contact us at [support@encatch.com](mailto:support@encatch.com) .

To delete the organization, you need to contact us at [support@encatch.com](mailto:support@encatch.com) .

You can add a new member to the organization by going to the **organization** menu in your dashboard and clicking the add member button. You can add a new member to the organization by clicking the add member button.

AI API calls are the calls made to the AI API endpoints when using the application.

  • AI Generated Feedback form creation
  • AI Obfuscation
  • External Insights chats and report generation
  • AI Filtering in destination
  • Question translations generated using AI
  • AI translation of qualitative responses

Data pipeline triggers are the triggers that are used to trigger the data pipeline.

  • When a destination is configured for feedback form submission (irrespective of the message is sent to destination or dropped in the filter process)
  • All other data pipeline processes where AI is explicitly mentioned in the triggers
#### Other documents and questions: 1. Billing FAQ, click [here](/docs/administrative-guide/billing/billing-faq) for more details. 2. Referrals FAQ, click [here](/docs/administrative-guide/referrals/referrals) for more details. 3. Rate Limiting, click [here](/docs/developer-guide/rate-limits) for more details. 4. Test Mode, click [here](/docs/developer-guide/test-mode) for more details. 5. Privacy Policy, click [here](/docs/administrative-guide/legal/privacy-policy) for more details. 6. Terms of Service, click [here](/docs/administrative-guide/legal/terms-of-service) for more details. # Billing FAQ (/docs/administrative-guide/billing/billing-faq)

You can check your usage and plan limits by going to the **billing** menu which is available in the left sidebar in your dashboard.

Your upgrade will be effective immediately.

Your downgrade will be effective after the current billing cycle ends (for which you have already been charged).

You can upgrade or downgrade your plan by going to the **billing** menu which is available in the left sidebar in your dashboard.

We do not offer refunds. If you are not satisfied with Encatch, you can cancel your subscription at any time. Scheduled payments will not be deducted.

Yes, you can cancel your subscription at any time by going to the billing page in your dashboard and clicking the cancel subscription button. You'll continue to have access to your account until the end of your current billing period / expiry of your already paid plan.

If you don't renew your subscription, you will be automatically downgraded to the free plan and you will lose access to all the features of the current plan which you were on.

Yes, we do offer upfront payments so that you can try out the features of the corresponsding plans. You can purchase a plan for a upfront payment and you will have access to the features of the plan for the duration of the payment.

# Filters (/docs/administrative-guide/data-pipelines/filters) ### Example use cases * Filter out feedback from specific users based on their email, department, role, etc. * Filter out feedback from specific devices based on their device id, device type, device model, etc. * Filter out feedback from based on responses captures, such as someone entering junk text in a text field. This feature is coming soon. # Transformations (/docs/administrative-guide/data-pipelines/transformations) ### Example use cases * Mask IP address * Transform URLs into simpler formats This feature is coming soon. # Additional Settings (/docs/administrative-guide/feedback-management/additional-settings) When you create API key, they are associated with your defined app names. To provide best and fast experience we cache feedback configurations for specific app names. ## Configuration Settings Below settings are available to configure: * **Config sync interval**: The interval at which the config sync will be performed by your SDK for any changes in your feedback configurations. * **Feedback frequency**: A global setting to control the frequency between two feedback forms being displayed to your users, unless a form is marked as important. * **Disable all feedback forms**: A global setting to disable all feedback forms from being displayed to your users for this specific app name. The disable all feedback forms does not disable the feedback forms for other app names. ## Cache Management * When you make changes to already created feedback forms, you can clear the cache for a specific app name by clicking the clear cache button, so that during next cycles of config sync, your SDK will fetch the latest feedback configurations. * If your changes are not immediately needed, you dont need to perform this step since the cache will be cleared automatically after 15 minutes. Suppose your app is active for multiple channels(android - MYAPP\_ANDROID, ios - MYAPP\_IOS, web - MYAPP\_WEB) and you want to temporarily disable feedback forms for web then you can use this feature to disable all feedback forms for web where you have defined the app name as MYAPP\_WEB, during API key creation. # API Keys (/docs/administrative-guide/feedback-management/api-keys) ## Managing API Keys API keys are essential for integrating encatch feedback collection into your applications. They provide secure authentication between your application and the encatch platform. ### Understanding API Keys Each API key consists of: * **Name**: A descriptive identifier for your reference. * **Key Prefix**: Helps you identify the generated key with the key name * **Expiry Date**: When the key will automatically expire * **Application Name**: The app names for which the key is valid. This is used to link which feedback forms are linked. * **Environment**: The environment for which the key is valid. Test keys are used for testing purposes and are not counted towards your usage. * **Allowed Domains**: The domains (for website it is the domain name and for mobile app it is the bundle id) for which the key is valid. This is used to restrict the key to only be used on specific domains. Use **\*** Asterisk to generate a key for all domains. Not recommended for production environments. * System does not store the generated key. Incase you lose the key, you can generate a new key and use it in your application and delete the old key, keeping the application name same. * Keep **application name** same across two keys which are meant for same purpose when old key is about to expire. * API keys are public when embedded in public websites. We apply rate limits to prevent abuse and ensure that the APIs (called from SDKs for feedback fetching and submission) is used fairly by all users. For information on rate limits, refer to the [Rate Limits](/docs/developer-guide/rate-limits) guide. ### Permissions Permissions are associated with the API key and are used to control the actions that can be performed with the key. 1. **Users**: Manage users who can use the key. * **create**: Use create permission if you want to add a new user using the key. * **delete**: Use delete permission if you want to remove a user using the key. * **update**: Use update permission if you want to update the users using the key. * **read**: Use read permission if you want to view the users information using the key. 2. **Feedback Forms**: Manage feedback forms that can be used with the key. * **create**: Use create permission if you want to submit feedback using the key. * **read**: Use read permission if you want to read feedback configurations using the key. * When creating API keys for frontend SDK's you enable create and update permissions, so that new users created in your application are automatically synced with encatch users in the current project. * You would chose not to enable the create permission if you have fixed users and prefer to sync from backend directly. Example,employee based applications where users are managed by HRMS. * When creating API keys for website (no login applications) you disable all user permissions, so that no one can create users, but can only submit feedback anonymously. # Form Creation & Customization (/docs/administrative-guide/feedback-management/form-creation) ## Creating Feedback Forms encatch provides a powerful visual form builder and pre-built templates to help you create effective feedback forms quickly. ### Getting Started You can chose to create a feedback form using; 1. Pre-built templates 2. AI form builder 3. Start from scratch All options allow you to fully manually customize the form to your needs before launching it. ### Features 1. **Multi-page support**: Either have one question per page or multiple questions per page. One question per page is recommended for best user experience for in-app feedback. For sharable link based feedback forms, you could chose to have multiple questions per page. 2. **Question types**: You can choose from a variety of question types including multiple choice, short answer, long answer, rating, and more. 3. **Multi-lingual support**: You can translate the form into different languages using AI's contextual understanding or translate it manually. 4. **Mobile-responsive**: The form is responsive and is build for all resolution. 5. **Dark mode**: The form is available in light and dark mode. 6. **Branding**: You can brand the form with your brand colors. ### Advanced customization options: 1. **Custom CSS**: You can add link to your own CSS file to override the default styles when basic branding options are not enough. 2. **Popup position**: You can choose to position the form in the top right, top left, bottom right, bottom left, center of the screen, or in a custom position. ### Frequency & Scheduling options: Control when and how often your feedback forms appear to users: **Feedback Frequency Types:** * **Single-use**: One-time display per user, best for major campaigns * **Recurring**: Periodic display with customizable intervals (days/weeks/months) * **Only Show Once**: Prevents re-display even if dismissed without completion **Scheduling Controls:** * **Start Feedback**: Immediately or custom date/time * **Stop Feedback**: Never (continuous) or custom end date * **Stop Responses**: Set maximum response limits ### Targeting & Triggering options: Control who sees your feedback forms and when they appear: **Trigger Modes:** * **Auto Trigger**: Automatic display based on configured conditions * **Manual Trigger**: Programmatic control via JavaScript API for custom events **Auto Trigger:** Set triggers based on: * **Time on Page**: After X seconds * **Scroll Depth**: When user scrolls Y% (You need to define the element and pass scrolled percentage in your code.) * **Custom Events**: Based on custom events you define in your code. * **Page Views**: When user visits specific page url. **Audience Targeting (WHO):** * **User Types**: Everyone, logged-in users only, anonymous users only, or custom segments * **User Filters**: Demographics, behavior, account type, custom attributes * **Priority Levels**: High priority (bypasses frequency rules) or standard priority **Application Targeting (WHERE):** * **Platforms**: Web applications, mobile apps, desktop apps, browser extensions * **Device Filters**: Desktop, mobile, tablet, smart TV * **Operating Systems**: Windows, macOS, iOS, Android, Linux # Overview (/docs/administrative-guide/feedback-management/overview) ## Introduction Feedback Management in encatch provides a comprehensive suite of tools to collect, analyze, and act on user feedback. From creating customized feedback forms to setting up sophisticated targeting rules, you have complete control over how and when you engage with your users. ## Next Steps } title="Form Creation & Customization" href="/docs/administrative-guide/feedback-management/form-creation" description="Learn how to create and customize feedback forms in encatch" /> } title="Reports & Export" href="/docs/administrative-guide/feedback-management/reports" description="Learn how to monitor, analyze, and understand feedback data in encatch" /> } title="Additional Settings" href="/docs/administrative-guide/feedback-management/additional-settings" description="Learn how to configure additional features in encatch" /> } title="Feedback Destinations" href="/docs/administrative-guide/feedback-management/feedback-destinations" description="Learn how to configure feedback destinations in encatch" /> } title="API Keys" href="/docs/administrative-guide/feedback-management/api-keys" description="Learn how to manage API keys in encatch" /> } title="Users" href="/docs/administrative-guide/feedback-management/users" description="Learn how to manage users in encatch" /> # Reports & Export (/docs/administrative-guide/feedback-management/reports) ## Overview of Feedback Reports Encatch provides three comprehensive reporting views to help you understand and analyze your feedback data: 1. **Audience Analytics**: Provides insights about your audience and how they're engaging with your feedback forms. 2. **Response Summary**: Provides insights about what users are saying and question-level insights. 3. **Individual Responses**: Provides detailed insights into each user's feedback. Each report provides filters that help you narrow down the data to your specific needs example date filters. ## Export Report The Export Report feature enables you to download feedback data for offline analysis, reporting, and integration with other tools. ## Realtime Feedback Notifications The destination feature in encatch allows you to filter and chose which individual user feedback you would like to be notified about. Few available destinations are: * Email * Slack * Jira * GitLab * Custom Webhook (that can be used with Zappier,n8n, MS power automate, etc.) Some usecase for this feature are: * You want to be notified about negative feedback from your users. * You want to be notified about feedback from your users about a specific bug. # Response Summary (/docs/administrative-guide/feedback-management/response-summary) ## Analyzing Response Data The Response Summary provides detailed insights into how users are answering your feedback questions, helping you understand patterns and extract actionable insights. ### Overview Metrics Track key performance indicators for your feedback form: #### Response Statistics * **Total Responses**: Number of completed submissions * **Response Rate**: Percentage of users who complete vs view * **Completion Time**: Average time to finish the form * **Drop-off Points**: Where users abandon the form ### Question-Level Analytics Dive deep into individual question performance: #### Response Distribution For each question, view: * **Response Count**: How many users answered * **Skip Rate**: Percentage who skipped (if optional) * **Response Types**: Distribution of answers #### Chart Types Visualize data using appropriate formats: ##### Pie Charts * **Best For**: Single-choice questions * **Shows**: Percentage distribution * **Example**: Yes/No questions, satisfaction ratings ##### Bar Charts * **Best For**: Multiple choice, rankings * **Shows**: Comparative volumes * **Example**: Feature preferences, priority lists ##### Donut Charts * **Best For**: Categories with sub-options * **Shows**: Hierarchical data * **Example**: Department feedback, nested choices ### Filtering and Segmentation Customize your analysis with advanced filters: #### Time Period Filters * **Date Range**: Select specific time periods * **Comparison**: Compare different periods * **Trends**: Track changes over time #### Add Conditions Filter responses by: * **User Segments**: Demographics, behavior * **Response Values**: Specific answers * **Metadata**: Device, location, source #### Add Breakdowns Segment data by: * **User Attributes**: Age, plan type, etc. * **Response Groups**: Satisfaction levels * **Time Periods**: Daily, weekly, monthly #### Behavior Filters Analyze based on user actions: * **Completion Status**: Full vs partial * **Response Time**: Fast vs slow responders * **Interaction Pattern**: Linear vs non-linear ### Interpreting Results Transform raw data into insights: #### Rating Questions For satisfaction or NPS questions: * **Average Score**: Overall satisfaction level * **Distribution**: Spread of ratings * **Trends**: Improvement or decline * **Segments**: Which groups are happiest **Action Items**: * Address low-score feedback * Identify improvement areas * Celebrate high ratings * Track progress over time #### Multiple Choice Questions For preference or feature questions: * **Popular Choices**: Most selected options * **Unexpected Results**: Surprising preferences * **Missing Options**: Write-in responses * **Correlations**: Related answer patterns **Applications**: * Product roadmap prioritization * Resource allocation decisions * Marketing message refinement * User persona validation #### Open-Ended Responses For text-based feedback: * **Theme Analysis**: Common topics * **Sentiment Tracking**: Positive vs negative * **Keyword Frequency**: Repeated terms * **Actionable Feedback**: Specific suggestions **Processing Tips**: * Export for detailed analysis * Use text analytics tools * Categorize manually for accuracy * Share verbatim quotes internally ### Advanced Analytics #### Cross-Question Analysis * **Answer Correlation**: How questions relate * **Path Analysis**: Response sequences * **Segment Profiles**: Group characteristics * **Predictive Indicators**: Future behavior clues #### Statistical Significance * **Sample Size**: Ensure adequate responses * **Confidence Intervals**: Margin of error * **P-Values**: Statistical validity * **Effect Size**: Practical importance ### View Detailed Metrics Expand analysis capabilities: #### Detailed Metric Views Access additional data: * **Response Timestamps**: When submitted * **Completion Paths**: Navigation flow * **Edit Patterns**: Changed answers * **Device Analytics**: Platform details #### Export Options * **Raw Data**: CSV for custom analysis * **Summary Reports**: PDF presentations * **API Access**: Programmatic retrieval * **Real-time Feeds**: Live data streams ### Best Practices #### Regular Analysis * **Daily Monitoring**: Active campaigns * **Weekly Reviews**: Ongoing feedback * **Monthly Reports**: Trend analysis * **Quarterly Planning**: Strategic insights #### Data Quality * **Remove Duplicates**: Clean data sets * **Filter Test Data**: Exclude internal tests * **Validate Responses**: Check for quality * **Handle Missing Data**: Appropriate methods #### Actionable Insights * **Prioritize Findings**: Focus on impact * **Share Results**: Stakeholder communication * **Track Actions**: Monitor improvements * **Close the Loop**: Inform users of changes ### Common Analysis Scenarios #### Product Feedback * Feature request prioritization * Usability issue identification * Satisfaction trend tracking * Competitive positioning #### Customer Experience * Journey pain points * Service quality metrics * Channel preferences * Support effectiveness #### Market Research * Segment identification * Preference mapping * Price sensitivity * Brand perception ### Integration with BI Tools Connect response data to your analytics stack: * **Export Formats**: CSV, JSON, API * **Scheduling**: Automated exports * **Data Warehouse**: ETL pipelines * **Visualization**: Tableau, PowerBI ### Troubleshooting Common issues and solutions: * **Missing Responses**: Check question logic * **Skewed Data**: Verify sampling method * **Low Completion**: Analyze drop-off points * **Export Errors**: Check data volume limits # User Management (/docs/administrative-guide/feedback-management/users) Users in encatch are your application users (end users) who interact with your application and provide feedback. * **Users**: End users of your application who submit feedback. Your users can scoped to the project level. Therefore, same user in two projects are counted as two different users. * **Members**: Administrators who manage the project and have access to the portal. ### User Attributes You can configure users atrributes like email, department, role, etc. to help you filter and analyze feedback data. User attributes are broken into 3 types **Pre-configured attributes**: Attributes that are pre-defined by you, that are filterable in the portal. * Examples include: email, department, role, etc. **Dynamic attributes**: Attributes that are not planned in advance and are created on the fly from your code. * Examples include: custom attributes, traits, etc. **System attributes**: Attributes that are pre-defined by the system and are not editable by you. * Examples include: user\_name, last\_seen, first\_seen, created\_at, updated\_at, etc. ### Manage Users You can manage (create, view,edit,delete) users in the portal. * Individually * Bulk upload * Sync from your backend using API keys (Comming soon) - **user\_name** field should be unique for each user in the project. - When chosing to create a user from SDK, ensure that this field is not easily guessable or reproducible. - Only configure user fields which are useful for you to create filters and segments in the portal. - To protect users information, the API SDK cannot send back the user fields to your frontend application. Unless explicitly configured to show certain fields where dynamic attribute of users data is shown in your form. Example, a question like, "How has **\{\{user\_f\_name}}** been expereincing the app?" # External Insights (/docs/administrative-guide/feedback-studio/external-insights) External insights allows you to load feedback data from your external tools using csv format and then analyze it using AI. ### How to use External Insights 1. Go to the **Feedback Studio -> External Insights** 2. Upload your csv file which includes the feedback data you want to analyze. 3. Verify the sample loaded data is correct. 4. Start asking questions about the feedback data. 5. Once you are satisfied with the results, you can ask AI to generate a report in HTML format. 6. You can further enhance the report by asking AI to add additional data points to the report. 7. The report is self contained HTML which you can save as a file and share with your team members or modify further manually as needed. ### Example use cases * You want to analyze the feedback data from social accounts like Twitter, Instagram, Youtube, Glassdoor, etc. * Existing reports from encatch are not enough to answer your questions, you can export that data to a csv file and analyze it using External Insights. # Privacy Policy (/docs/administrative-guide/legal/privacy-policy) # Privacy Policy Welcome to encatch, a product of **Phyder Mobile Solutions Pvt. Ltd.** ("we," "our," or "us"). We are committed to protecting your privacy and ensuring you understand how your information is collected, used, and shared. This Privacy Policy applies to the **encatch** website ([https://encatch.com](https://encatch.com)) and our SaaS feedback platform. ## 1. Our Relationship: Data Controller vs. Data Processor To ensure compliance with privacy laws (such as GDPR and CCPA), it is important to clarify the relationship between encatch (Phyder Mobile Solutions Pvt. Ltd.), our Customers, and End-Users. * **The Customer (You) is the "Data Controller":** If you integrate the encatch SDK into your application, you retain ownership of the data collected from your users. You are responsible for obtaining necessary consents and ensuring your use of our service complies with applicable laws. * **encatch is the "Data Processor":** We process data on your behalf. We store, analyze, and manage the data solely to provide the Service to you, strictly following your configuration and instructions. * **The End-User is the "Data Subject":** If you are an end-user of an application that uses encatch, please direct any privacy questions or data deletion requests to the application owner (our Customer). ## 2. Information We Collect ### A. From Website Visitors When you visit our marketing website ([https://encatch.com](https://encatch.com)), we collect anonymous usage statistics to improve our user experience. * **Analytics:** We use tools like **Google Analytics** to view data such as device type, browser version, page views and geographic location. ### B. From Customers (You) When you sign up for encatch, we collect the following to manage your account and services: * **Account Data:** Name, email address, and password. * **Project & Configuration Data:** All metadata you create to set up your account, including project names, survey questions, widget appearance settings, targeting rules, and other customization preferences. * **Billing Data:** Payment information (processed by secure third-party payment gateways; we do not store raw credit card numbers). * **Operational Data:** Logs of your interactions with our dashboard and API. ### C. From End-Users (Via your App) When you use our SDK, we collect the following on your behalf: * **Feedback Content:** Text responses, ratings, and survey answers. * **Technical Metadata:** Browser type, OS, and device information. * **Custom Context:** Any user attributes (e.g., User IDs, emails, or plan types) you explicitly choose to send to us via the SDK. ## 3. How We Use Information We use the collected data to: 1. **Provide the Service:** Storing feedback, preserving your project configurations, rendering widgets, and generating reports. 2. **AI Enhancements (Optional):** If enabled by the Administrator, processing feedback text to provide summaries or sentiment analysis. 3. **System Improvement:** Monitoring database performance and debugging technical issues. 4. **Communication:** Sending transactional emails (invoices, alerts) or product updates. ## 4. Sharing with Third-Party Service Providers To provide a scalable and robust service, we engage trusted third-party service providers ("Subprocessors") to handle specific technical operations, such as cloud hosting, database management, and AI processing. **Current categories of providers we may use include, but are not limited to:** * **Cloud Infrastructure:** (e.g., **Amazon Web Services (AWS)**) for hosting servers and secure storage. * **Database Services:** (e.g., **PlanetScale**, **Clickhouse Cloud**) for relational and analytical data storage. * **AI & LLM Providers:** (e.g., **OpenAI**, **Google Gemini**) for natural language processing features. *Note: Data is only sent here if you enable AI features.* * **Analytics Tools:** (e.g., **Google Analytics**) for website traffic monitoring. **Important Note on Third-Party Policies:** While we select our partners carefully, these providers operate under their own Privacy Policies. We encourage you to review their policies to understand how they handle data. By using encatch, you acknowledge that data may be processed by these third parties to fulfill the services you request. ## 5. Cookies and Tracking We use cookies and local storage for: * **Authentication:** Keeping you logged into the dashboard. * **User Experience:** Remembering widget states (e.g., ensuring an End-User doesn't see the same survey repeatedly). * **Analytics:** Understanding traffic on our marketing site. ## 6. Data Security and Retention * **Security:** We utilize industry-standard encryption (HTTPS/TLS) for data in transit and encryption for sensitive data at rest. Access to production data is restricted to authorized personnel only. * **Retention:** We retain Customer Data (including your project configurations and collected feedback) as long as your account is active. Upon account cancellation, data is deleted from our active databases within a reasonable timeframe (typically 30 days), though encrypted backups may be retained for a limited period for disaster recovery. ## 7. Changes to This Privacy Policy We reserve the right to modify this Privacy Policy at any time to reflect changes in our technology, legal requirements, or business operations. * **Notification:** If we make material changes, we will notify you via email or through a prominent notice on the encatch dashboard. * **Acceptance:** Your continued use of the Service after any changes constitutes your acceptance of the new Privacy Policy. We encourage you to review this page periodically for the latest information on our privacy practices. ## 8. Contact Us If you have questions about this policy or our data practices, please contact us at: **encatch** (A product of **Phyder Mobile Solutions Pvt. Ltd.**) Email: [support@encatch.com](mailto:support@encatch.com) Website: [https://encatch.com](https://encatch.com) # Terms of Service (/docs/administrative-guide/legal/terms-of-service) # Terms of Service Welcome to **encatch**. These Terms of Service ("Terms") constitute a legally binding agreement between you ("Customer," "User," or "You") and **Phyder Mobile Solutions Pvt. Ltd.** ("Company," "we," "us," or "our"), the owner and operator of the encatch platform. By accessing or using the encatch website ([https://encatch.com](https://encatch.com)), installing our SDK, or using our services (collectively, the "Service"), you agree to be bound by these Terms. If you do not agree to these Terms, do not use the Service. ## 1. Description of Service encatch is a feedback management platform that allows application developers to collect, manage, and analyze user feedback via an SDK and dashboard. The Service may include features such as data storage, analytics, and AI-assisted summaries. We may update, modify, or discontinue features of the Service from time to time to improve performance or comply with regulations. ## 2. Accounts and Registration To use the Service, you must register for an account. You agree to: * Provide accurate, current, and complete information during registration. * Maintain the security of your password and account credentials. * Notify us immediately of any unauthorized use of your account. You are responsible for all activities that occur under your account, including the actions of any team members you invite to your workspace. ## 3. Intellectual Property Rights ### A. Our IP (The Platform) **Phyder Mobile Solutions Pvt. Ltd.** retains all rights, title, and interest in and to the encatch Service, including our source code, SDKs, design, logos, algorithms, databases, and documentation. Nothing in these Terms grants you a license to use our intellectual property except as explicitly permitted for using the Service. ### B. Your IP (Customer Data) You retain all rights and ownership of the data you submit to the Service ("Customer Data"), including: * Your project configurations (survey questions, targeting rules). * The feedback and metadata collected from your End-Users. ### C. License to Host By using the Service, you grant us a worldwide, non-exclusive, royalty-free license to host, copy, process, and display your Customer Data solely for the purpose of providing the Service to you (e.g., storing the feedback in our database and displaying it on your dashboard). ## 4. Artificial Intelligence (AI) Features Our Service includes optional AI features (powered by third-party providers like OpenAI and Google Gemini) to summarize feedback or analyze sentiment. By enabling these features, you acknowledge that: 1. **Accuracy:** AI-generated content is probabilistic and may contain errors. You should not rely solely on AI outputs for critical business decisions without human verification. 2. **Processing:** Data sent to AI models is processed according to our Privacy Policy and the policies of the respective AI providers. 3. **No Liability:** We are not liable for any inaccuracies, bias, or offensive content generated by the AI models. ## 5. Acceptable Use Policy You agree not to use the Service to: 1. Collect sensitive personal information (e.g., health data, financial data, government IDs) via the feedback forms unless you have a specific legal basis and adequate security measures in place. 2. Reverse engineer, decompile, or attempt to extract the source code of the SDK or platform. 3. Use the Service to distribute malware, spam, or harmful content. 4. Interfere with the integrity or performance of the Service (e.g., DDoS attacks or placing an excessive load on our infrastructure). ## 6. Payment and Subscription * **Fees:** Certain features of the Service may be subject to fees. You agree to pay all applicable fees in connection with your selected subscription plan. * **Billing:** Payments are processed by third-party gateways. We do not store your full credit card details. * **Refunds:** Unless required by law, payments are non-refundable. * **Taxes:** You are responsible for any applicable taxes associated with your purchase. ## 7. Termination * **By You:** You may stop using the Service at any time by cancelling your account via the dashboard or contacting support. * **By Us:** We may suspend or terminate your access to the Service immediately if you violate these Terms (e.g., non-payment or violating the Acceptable Use Policy). * **Effect of Termination:** Upon termination, your right to use the Service will end. We will delete your Customer Data in accordance with our Privacy Policy retention schedule. ## 8. Disclaimers **The Service is provided on an "AS IS" and "AS AVAILABLE" basis.** To the fullest extent permitted by law, Phyder Mobile Solutions Pvt. Ltd. disclaims all warranties, express or implied, including warranties of merchantability, fitness for a particular purpose, and non-infringement. We do not guarantee that the Service will be uninterrupted, error-free, or secure, or that the AI features will be accurate. ## 9. Limitation of Liability In no event shall **Phyder Mobile Solutions Pvt. Ltd.**, its directors, employees, or partners be liable for any indirect, incidental, special, consequential, or punitive damages, including loss of profits, data, use, or goodwill. Our total liability for any claim arising out of or relating to these Terms or the Service shall not exceed **the amount you paid to us for the Service in the six (6) months preceding the event giving rise to the claim.** ## 10. Governing Law and Jurisdiction These Terms shall be governed by and construed in accordance with the laws of **India**. Any disputes arising under or in connection with these Terms shall be subject to the exclusive jurisdiction of the courts located in **Mumbai, Maharashtra, India**. ## 11. Changes to Terms We reserve the right to modify these Terms at any time. If we make material changes, we will notify you via email or a notice within the Service. Your continued use of the Service after such changes constitutes your acceptance of the new Terms. ## 12. Contact Us If you have any questions about these Terms, please contact us at: **encatch** (A product of **Phyder Mobile Solutions Pvt. Ltd.**) Email: [support@encatch.com](mailto:support@encatch.com) Website: [https://encatch.com](https://encatch.com) # Referrals (/docs/administrative-guide/referrals/referrals) We believe in the power of community and we want to reward you for referring and continuous educating your users about encatch and potential benefits of using it. ### Referral Program Rules and Guidelines 1. Only users who have purchased a paid plan can refer new users. 2. Your referral codes are applicable till the code expiry period / no of times the code is used (You can view this information in the **billing page -> referrals**). 3. If you discontinue your subscription, your referral code will be temporarily disabled (and not elligible for commissions) until you have an active subscription again.

You can refer a user by sharing the referral link with them (generated from your **billing page -> referrals** ). When the user signs up and purchases a paid plan anytime in the future, you will earn a commission.

If the user had clicked on your referral link, the referral code will be automatically shown on the subscription page during renewals. User can chose to manually enter / edit the referral code if they want to.

Referrals are recurring. You will earn a commission for as long as the user you referred is a customer of encatch and on renewal chose to use your referral code. If they update with someone else's referral code, you will no longer be eligible for commissions.

You will earn a commission of % percentage of the purchase amount of the new user (This percentage is shown to you while creating the referral code). The commission is paid in the form of payout which can be requested via email.

You can view your estimated earnings by going to the **referrals** menu in your dashboard and clicking the view estimated earnings page. You can see the estimated earnings amount where subscription for current billing month is already paid for.

## Payout FAQ

At the moment, you can request a payout only via email. Please send an email to [support@encatch.com](mailto:support@encatch.com) with your payout request amount and the payment method you want to be paid in.

You will be paid via Paypal / Payoneer. You can request a payout at any time by going to the **referrals** menu in your dashboard and clicking the request payout button.

You are eligible for payout 15 days after the user has consumed current billing month's subscription. You can request a payout of maximum once in a month and once minimum payout amount is $100. Payout requests will be processed within 25 business days.

During payout, an applicable deduction as per the payment provider charges will be deducted from the payout amount.

You can view your payout history by going to the **referrals** menu in your dashboard and clicking the view payout history page. You can see the list of payouts you have received.

#### Program Terms and Conditions **Encatch's Rights and Discretion:** Encatch reserves the right to reverse any final referral decisions, modify the referral program terms, conditions, and benefits at its sole discretion. This includes but is not limited to: * Reversing referral commissions that have been awarded * Modifying commission rates and payout structures * Changing eligibility requirements for referrals * Suspending or terminating elligible users' referral accounts * Updating program rules and guidelines Any modifications to the referral program will be communicated to elligible users through appropriate channels. Continued participation in the referral program constitutes acceptance of any such changes. # Members (/docs/administrative-guide/system-setup/members) ### Inviting Team Members * Only users with appropriate permissions can invite new members to the organization or project level. * By inviting member at organization level you grant them across all projects (based on scopes defined in that role). * By inviting member at project level you grant them only to that project. * People you are invite are auto accepted to the organization and project. If a user has previously not joined encatch, you will see **invited** status in the members list. If the invited member has already joined encatch, you will see **active** status in the members list. * An invitation email is sent to the invited member to join the organization / project. - Any member assigned at organization level cannot be added as a member at project level and vice versa. - If you want to add a member at project level, you need to remove them from the organization level first. - Organization owner will have access to all organization and project level features and cannot be removed from the organization. - A user can be added as organization admin in multiple organizations but will be owner of only one organization. ### Enterprise Feature Enterprises have the flexibility to send invitation emails from their own email domain or use encatch's email domain with custom branding and mail content. # Organization & Projects (/docs/administrative-guide/system-setup/overview) ## Platform Hierarchy The encatch platform follows a hierarchical structure that organizes your feedback collection and management: read about the platform hierarchy [here](/docs/administrative-guide#platform-hierarchy). ## Organization / Project Management * Use the **Manage** option in the sidebar to access the organization and project management page. The page will show you the list of organizations and projects you have access to. * Roles and permissions (for orgnization and projects level) are created / managed at the organization level only. * Members can be chosen to be invited at organization level or at project level. #### Important Notes: * One email address can only be associated with one organization as owner. * At present, reassigning organization owner to a different user is restricted from admin portal as self service. Contact us for such requests. * You can only access the organization and project management page if you have the **Manage** permission. * Every new user registration on the encatch admin portal automatically creates an organization, with the registering user becoming the organization owner. # Role & Permissions (/docs/administrative-guide/system-setup/roles-permissions) ## Roles and permissions Roles define what actions users can perform within the organization and projects. Permissions can be customized at both the **organization level** and the **project level**. #### Default Roles * By default, a organization admin role is created with all permissions at organization level. This role cannot be deleted or modified. #### Custom Roles You can create custom roles to meet your organizational and project needs. * When creating a new role at organization level, you can choose to limit the role with permissions at organization level or across projects. - Organization admin role cannot be deleted or modified. - Organization Owner (the user who creates the organization) is automatically added as an organization admin and cannot be removed. #### Example of custom roles: * You may create a role as system admin, which will have access to organization level features that allow to manage roles and member invitations only. * You may create a project level role as feedback management who has access to view and manage feedback within the project. * You may create a project level role as integration manager who has access to manage data pipelines within the project, since these contain sensitive information and may need to be managed by a dedicated team. # Encatch with LLMs (/docs/developer-guide/ai-guides/llms) ### Full Global Context: You can use the [llms-full.txt](/llms-full.txt) file to get updated code suggestions to easily integrate with your LLM / vibe coding tools. This link covers the full documentation of the Encatch API and SDKs including administrative guide. ### Page Specific Context: If you would like to get only a page specific context you can 1. Choose **Copy Markdown** option from the page actions (Below the page title). 2. From page actions, choose **Open** with your favorite LLM like Claude, ChatGPT, etc (Below the page title). 3. append the current url with **.mdx** (dot mdx extension). Example: **[docs/developer-guide/ai-guides/llms](/docs/developer-guide/ai-guides/llms)** -> **[docs/developer-guide/ai-guides/llms.mdx](/docs/developer-guide/ai-guides/llms.mdx)** # User API Guide (/docs/developer-guide/api-guides/user-api-guides) ### Overview The UI uses a small set of REST endpoints via internal fetch hooks (for example `useGetConnectors`, `useGetDestinations`, `useCreateDestination`, `useEnableDestination`, `useDeleteDestination`). Each hook delegates to backend URLs configured in `modulePermissions.*` (see code for exact url/method values used in your deployment). > Note: The examples below use generic routes and shapes. Replace `BASE_URL` and paths with the actual `modulePermissions.*` URLs from your environment. *** ### Auth & headers The UI sends standard headers (see `@encatch/-constants/headers`) and relies on session/auth middleware. A typical header set looks like: ```http Authorization: Bearer Content-Type: application/json X-Engage-Org: X-Engage-Project: ``` Use the existing `useEngageFetchApi()` wrapper in UI code to match the project's auth flow. *** ### List connectors (pre-configured templates) Purpose: fetch connector templates (Slack, webhook, email, gitlab, jira, ...) Query params commonly supported: * page (number) — 1-indexed * page\_size (number) * purpose (optional) — purpose filter (R/B/P) Example request (GET): ```http GET BASE_URL/pre-configured-connectors?page=1&page_size=20 Authorization: Bearer ``` Example JSON response shape ```json { "pagination": { "current_page": 1, "page_size": 20, "total_count": 42, "total_pages": 3 }, "connectors": [ { "connector_id": 10, "connector_type": "slack", "connector_name": "Slack Incoming Webhook", "connector_description": "Post to slack", "connector_config": "{...}", "pipeline_type": "realtime", "purpose": "R" } ] } ``` Hook used in UI: `useGetConnectors(params)` — returns `connectors`, `pagination`, `isLoading`, `isError`. *** ### List destinations (project-level bindings) Purpose: fetch destinations for a project (optionally filtered by feedback configuration). Supports pagination and column filtering. Query params commonly supported: * page (number) * page\_size (number) * feedback\_configuration\_id (optional) * plus additional filter params (column filter keys supported by backend) Example request (GET): ```http GET BASE_URL/destinations?page=1&page_size=10&feedback_configuration_id=fc_abc123 Authorization: Bearer ``` Example response shape ```json { "pagination": { "current_page": 1, "page_size": 10, "total_count": 2, "total_pages": 1 }, "connectors": [ { "project_connector_id": "pc_001", "project_id": 123, "feedback_configuration_id": "fc_abc123", "connector_id": 10, "connector_project_name": "Slack - Feedback Alerts", "connector_project_description": "Post feedback to #feedback", "connector_name": "Slack Incoming Webhook", "connector_type": "slack", "purpose": "R", "pipeline_type": "realtime", "is_enabled": "Y", "updated_by": "user_1", "updated_at": "2025-09-03T12:00:00Z" } ] } ``` Hook used in UI: `useGetDestinations(page, pageSize, filters, enabled, feedbackId)` — returns `destinations`, `pagination`, `isLoading`, `isError`. *** ### Create destination Purpose: create a new project-scoped destination (bind a connector to a project/feedback). Request body (CreateDestinationRequest) ```json { "connector_id": 123, "feedback_configuration_id": "fc_abc123", "connector_project_name": "Slack - Feedback Alerts", "connector_project_description": "Post feedback to #feedback", "purpose": "R", "pipeline_type": "realtime", "is_enabled": "Y", "active_status": "A" } ``` Example response (on success) ```json { "message": "Destination created", "project_connector_id": "pc_001" } ``` Hook used in UI: `useCreateDestination()` — this wraps a POST mutation and invalidates `QUERY_KEYS.DESTINATIONS` on success. *** ### Update destination definition / config Purpose: update destination definition (connector selection) or connector-specific config. Use the destination edit endpoint. The body typically includes connector config blob and updateable fields like `connector_project_name`, `connector_project_description`, `is_enabled`, and connector-specific config payload. Example patch request shape (pseudo) ```json { "connector_project_name": "Slack - Alerts v2", "connector_config": { "webhook_url": "https://hooks..." }, "is_enabled": "Y" } ``` There are separate endpoints in the UI hooks for `updateDef` and `updateConfig` (see `-services/hooks/useUpdateDestinationDefiniton.ts` and `useUpdateDestinationConfig.ts`). *** ### Enable / disable destination Purpose: toggle `is_enabled` flag for a destination. Example request (PATCH / POST): ```json { "destinationId": "pc_001", "is_enabled": "N" } ``` Hook used in UI: `useEnableDestination()` — toggles and refetches cache. *** ### Delete destination Purpose: remove a destination from a project. Example request (DELETE): ```http DELETE BASE_URL/destinations/pc_001 Authorization: Bearer ``` Hook used in UI: `useDeleteDestination(projectConnectorId)` — invalidates queries and shows a toast on success. *** ### Export / Test endpoints * `TestTemplateDialog` triggers a test payload to verify a destination's connector config. It typically calls a `test` endpoint with the destination ID and returns success/failure and raw response body for debugging. * Export endpoints exist for downloading feedback results (see `results/export` hooks); they may trigger background jobs and offer job status polling endpoints. *** ### Pagination & filtering * Pagination is 1-indexed in the UI hooks and returned in a `pagination` object with `current_page`, `page_size`, `total_count`, `total_pages`. * Column filtering is passed as query params. Use `getFilterParams()` (see UI code) to map column filters to query params. *** ### Error handling and retries * The UI expects standard HTTP status codes. On 4xx the UI surfaces an error page/toast. On 5xx you may want to implement retries with exponential backoff. * For webhooks and external sinks, backend should implement retry/backoff and a dead-letter strategy for permanent failures. *** ### Example JS (client) snippets Create destination (fetch wrapper): ```js async function createDestination(data) { const res = await fetch(`${BASE_URL}/destinations`, { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` }, body: JSON.stringify(data) }); if (!res.ok) throw new Error(`Create failed: ${res.status}`); return res.json(); } ``` Get destinations with pagination: ```js async function getDestinations(page=1, pageSize=10, filters={}) { const params = new URLSearchParams({ page, page_size: pageSize }); Object.entries(filters).forEach(([k,v]) => v !== undefined && v !== '' && params.append(k, v)); const res = await fetch(`${BASE_URL}/destinations?${params.toString()}`, { headers: { Authorization: `Bearer ${token}` } }); if (!res.ok) throw new Error('Fetch failed'); return res.json(); } ``` *** ### Notes & references * Exact URLs and methods are configured in `modulePermissions.*` in the UI codebase; reference these values for the canonical endpoints and HTTP verbs. * See the UI hooks in `admin/ui-v2/src/routes/.../module/encatch/destinations/-services/hooks/` for concrete usage and response handling. If you'd like, I can also: * Extract the `modulePermissions.*` URL/method values and embed them into this guide for a specific environment. * Generate an OpenAPI-style JSON example for the destination endpoints. # Flutter SDK (/docs/developer-guide/sdk-guides/flutter) 🚀 **Coming Soon!** We're working hard to bring you an amazing Flutter SDK experience. Our team is actively developing comprehensive documentation, examples, and best practices to help you integrate encatch seamlessly into your Flutter applications. Stay tuned for updates - we can't wait to share what we're building! 💪 # Other SDKs (/docs/developer-guide/sdk-guides/others) import { SuggestSdkButton } from "@/components/fumadocs-custom/suggest-sdk-button";

We are always looking to add more SDKs as adoption takes place. Don't see your favorite SDK? Let us know which SDK you'd like us to build next!

# React Native SDK (/docs/developer-guide/sdk-guides/react-native) 🚀 **Coming Soon!** We're working hard to bring you an amazing React Native SDK experience. Our team is actively developing comprehensive documentation, examples, and best practices to help you integrate encatch seamlessly into your React Native applications. Stay tuned for updates - we can't wait to share what we're building! 💪 # JavaScript Web SDK (/docs/developer-guide/sdk-guides/web) import { DynamicCodeBlock } from 'fumadocs-ui/components/dynamic-codeblock'; import { TypeTable } from 'fumadocs-ui/components/type-table'; import { StatusGrid } from '@/components/fumadocs-custom/status-grid'; {/* Features and compatibility overview. */} {/* */} The encatch JavaScript SDK provides seamless integration for web applications, enabling automated feedback collection and analytics with minimal setup. ## Quick Start Get encatch running in your application in under 5 minutes with below steps. ## Installation & Initialization Install the encatch JavaScript SDK using your preferred package manager: npm pnpm yarn bun ```bash npm install @encatch/web-sdk ``` ```bash pnpm add @encatch/web-sdk ``` ```bash yarn add @encatch/web-sdk ``` ```bash bun add @encatch/web-sdk ``` After installation, import and initialize the SDK in your application: ES6 Modules CommonJS TypeScript ```javascript import { Encatch } from '@encatch/web-sdk'; // Initialize the SDK const encatch = new Encatch(); encatch.init(''); ``` ```javascript const { Encatch } = require('@encatch/web-sdk'); // Initialize the SDK const encatch = new Encatch(); encatch.init(''); ``` ```typescript import { Encatch } from '@encatch/web-sdk'; // Initialize the SDK with TypeScript support const encatch = new Encatch(); encatch.init(''); ``` Add the following script to the `` section of your HTML, preferably just before the closing `` tag. Replace `` with your actual project API key from the encatch dashboard. ```html ....other head content ....other body content ``` encatch web is a client side SDK and relies on window object to be available. So ensure it is not used in server side components. ```javascript import { Encatch } from '@encatch/web-sdk'; import { useEffect } from 'react'; function App() { useEffect(() => { const encatch = new Encatch(); encatch.init(''); }, []); return
Your React App
; } ```
```javascript import { Encatch } from '@encatch/web-sdk'; import { onMounted } from 'vue'; export default { setup() { onMounted(() => { const encatch = new Encatch(); encatch.init(''); }); } } ``` **Create a Svelte Component** Create a new component file `src/lib/EncatchComponent.svelte`: ```svelte ``` **Include in Layout** Add the component to your root layout file `src/routes/+layout.svelte`: ```svelte ``` **Create an Angular Service** Create a new service file `src/app/services/encatch.service.ts`: ```typescript import { Injectable } from "@angular/core"; import { Encatch } from "@encatch/web-sdk"; @Injectable({ providedIn: "root", }) export class EncatchService { private encatch: any; constructor() { this.encatch = new Encatch(); this.encatch.init(""); } } ``` **Include in App Component** Add the service to your main app component `src/app/app.component.ts`: ```typescript import { Component } from "@angular/core"; import { EncatchService } from "./services/encatch.service"; @Component({ selector: "app-root", template: ` `, }) export class AppComponent { constructor(private encatchService: EncatchService) {} } ``` **Create a Component** Create a new component file `src/components/EncatchComponent.tsx`: ```typescript import { onMount } from "solid-js"; import { Encatch } from "@encatch/web-sdk"; export default function EncatchComponent() { onMount(() => { const encatch = new Encatch(); encatch.init(""); }); return null; } ``` **Include in App** Add the component to your main app file `src/App.tsx`: ```typescript import { Component } from "solid-js"; import EncatchComponent from "./components/EncatchComponent"; const App: Component = () => { return ( <>
Your SolidJS App
); }; export default App; ```
**Create a Client Component** Create a new component file `components/EncatchComponent.tsx`: ```javascript "use client"; import { Encatch } from "@encatch/web-sdk"; import { useEffect } from "react"; export default function EncatchComponent({ children, }: { children: React.ReactNode, }) { useEffect(() => { const encatch = new Encatch(); encatch.init(""); }, []); return <>{children}; } ``` **Include in Layout** Add the component to your root layout file `app/layout.tsx`: ```javascript import EncatchComponent from "@/components/EncatchComponent"; export default function Layout({ children }) { return ( <>
{children}