Comprehensive guide for integrating and customizing the SayJet feedback widget.
To get started with SayJet, add the following script tag to your website's header or footer:
Then, add a button with the data-sj-channel
attribute to your website:
The widget can be customized using various data attributes. Here's a complete list of available options:
Attribute | Type | Description |
---|---|---|
data-sj-channel | string | Your unique channel ID (required) |
Attribute | Type | Default | Description |
---|---|---|---|
data-sj-form-title | string | Feedback | Custom title for the feedback form |
data-sj-submit-text | string | Send | Custom text for the submit button |
data-sj-optional-email | boolean | false | Make the email field optional |
data-sj-pre-fill-email | string | "" | Pre-fill the email field with a specific value |
data-sj-color-primary | string | #000000 | Primary color for buttons and accents |
data-sj-color-primary-foreground | string | #000000 | Primary color for buttons and accents |
data-sj-color-background | string | #ffffff | Background color of the widget |
data-sj-color-foreground | string | #000000 | Text and icons color |
data-sj-color-gray | string | #e5e5e5 | Color for borders and inputs |
data-sj-corner-radius | string | 0.75rem | Border radius for all elements |
data-sj-screenshot-ignore | boolean | false | Prevent from item to include in screenshot (can be used on any element) |
Placement
Add the script tag in your website's header or footer for optimal loading.
Button Location
Place the feedback button where it's easily accessible but not intrusive.
Customization
Use the optional attributes to match your website's design and branding.
Email Collection
Consider using data-sj-optional-email
to gather user contact information when appropriate.
Pre-fill Email
Use data-sj-pre-fill-email
to pre-fill the email field with a specific value - this is useful for collecting feedback from logged in users in your application/dashboard/checkout page (e.g. data-sj-pre-fill-email="test@test.com"
).
Screenshot Ignore
Use data-sj-screenshot-ignore
to prevent any element from being included in screenshots - this is useful to prevent sensitive information from being captured in screenshots.
The widget is loaded asynchronously to prevent any impact on your website's performance. It uses a deferred script loading strategy
The widget collects the following information:
All data is transmitted securely over HTTPS. The widget implements:
Widget Not Loading
Customization Not Working
Form Submission Issues
For additional support or questions, please contact our team at hello@sayjet.com.
The widget exposes a simple API through the global window.SayJet
object for programmatic control. This can be useful for:
Here's a complete example of how to use the API:
If you're using TypeScript, the widget includes type definitions:
Check for API Availability
Error Handling
Performance
User Experience
Webhooks allow you to receive real-time notifications when new feedback is submitted. This feature is available for paid plans only.
When new feedback is received, your webhook endpoint will receive a POST request with the following JSON payload:
You can manage your webhooks through the dashboard:
Endpoint Security
Monitoring
Performance
Testing
v1.0.0 (Current)