Features
- Iframe Embedding: Display external web applications in Chatwoot
- Multiple Apps: Configure multiple dashboard apps per account
- Flexible Content: Support for multiple iframe sources per app
- HTTPS Support: Secure iframe loading with HTTPS validation
- Account-Level: Available across all users in the account
- Custom Integration: Build integrations for any web-based tool
Use Cases
Dashboard Apps are perfect for:- Internal Tools: Embed company-specific dashboards or utilities
- Custom CRM: Display custom CRM interfaces
- Analytics Dashboards: Show real-time metrics and reports
- Knowledge Bases: Quick access to internal documentation
- Ticketing Systems: Integrate with existing ticket management
- Admin Panels: Custom administrative interfaces
- Third-Party Apps: Services that support iframe embedding
Prerequisites
- Admin access to your Chatwoot account
- Web application accessible via HTTPS
- Application supports iframe embedding (no X-Frame-Options restrictions)
Creating a Dashboard App
Step 1: Prepare Your Application
Ensure your web application:- Is accessible via HTTPS (HTTP URLs are not allowed)
- Doesn’t block iframe embedding with
X-Frame-Optionsor CSP headers - Has a responsive design that works in an iframe context
- Handles cross-origin communication if needed
Step 2: Create the App in Chatwoot
- Navigate to Settings > Integrations in Chatwoot
- Find Dashboard Apps in the integrations list
- Click Configure or Add New
- Fill in the required information:
- Click Create
Step 3: Access Your Dashboard App
- Navigate to the Dashboard Apps section in Chatwoot
- Your custom app will appear in the list
- Click to open and view the embedded application
Content Configuration
Dashboard Apps use a JSON array to define iframe content:Basic Configuration
Multiple Iframes
You can embed multiple iframes in a single dashboard app:Schema Validation
The content field is validated against a JSON schema:- Content must be an array
- At least one item is required
- Each item must have
typeandurlproperties - Type must be “frame”
- URL must be a valid URI starting with
http://orhttps:// - HTTPS is strongly recommended and may be required
API Integration
List Dashboard Apps
Get Single Dashboard App
Create Dashboard App
Update Dashboard App
Delete Dashboard App
204 No Content
Implementation Details
Dashboard Apps are implemented using:- Model:
DashboardApp - Controller:
Api::V1::Accounts::DashboardAppsController - Validation: JSON Schema validation for content structure
- Storage: JSONB field for flexible content structure
Database Schema
Model Validation
Advanced Usage
Passing Context to Iframes
You can pass context to your embedded applications using query parameters:Handling Authentication
For applications requiring authentication:- Token-Based: Pass authentication tokens via query parameters
- Session Cookies: Ensure same-origin or proper CORS setup
- OAuth: Implement OAuth flow before embedding
- SSO: Use single sign-on for seamless access
Cross-Origin Communication
If your embedded app needs to communicate with Chatwoot:Troubleshooting
Iframe Not Loading
Issue: Dashboard app shows blank or refuses to load. Solution:- Verify the URL is accessible and returns content
- Check that the site allows iframe embedding:
- Ensure HTTPS is used (HTTP may be blocked)
- Check browser console for CSP or X-Frame-Options errors
Validation Error
Issue: “Invalid data” error when creating dashboard app. Solution:- Verify content is a valid JSON array
- Ensure each item has
typeandurlproperties - Check that URLs start with
http://orhttps:// - Use a JSON validator to check syntax
Content Not Displaying
Issue: Dashboard app created but content doesn’t appear. Solution:- Check that content array is not empty (
minItems: 1) - Verify each URL is valid and accessible
- Test URLs directly in a browser
- Check network tab for failed iframe requests
X-Frame-Options Blocking
Issue: “Refused to display in a frame” error. Solution:- The target site blocks iframe embedding
- Options:
- Contact the site owner to allow your Chatwoot domain
- Use a proxy service that removes X-Frame-Options
- Build a custom integration instead of using iframes
- Check the site’s Content Security Policy
Mixed Content Errors
Issue: Iframes blocked on HTTPS Chatwoot instances. Solution:- Ensure all iframe URLs use HTTPS
- HTTP content cannot be loaded in HTTPS pages
- Upgrade your embedded applications to HTTPS
Security Considerations
URL Validation
- Only HTTPS URLs should be used in production
- URLs are validated against URI format
- Pattern matching ensures proper protocol
Content Security Policy
If you host Chatwoot with strict CSP:frame-src directive.
Data Privacy
- Embedded applications can access any data visible in the iframe
- Be cautious about displaying sensitive information
- Consider authentication and authorization in embedded apps
- Review privacy policies of embedded services
X-Frame-Options
Chatwoot should not setX-Frame-Options headers that would block your dashboard apps:
frame-ancestors directive:
Best Practices
- Use HTTPS: Always use HTTPS for embedded applications
- Test First: Verify applications work in iframes before adding
- Descriptive Titles: Use clear, descriptive titles for dashboard apps
- Minimal Apps: Don’t create too many dashboard apps
- Responsive Design: Ensure embedded apps work at various viewport sizes
- Error Handling: Implement graceful error handling in embedded apps
- Performance: Monitor iframe load times and optimize
- Documentation: Document the purpose and usage of each dashboard app
Limitations
- Iframe Restrictions: Subject to browser iframe security policies
- No Server-Side Rendering: Content is client-side only
- Same-Origin Limitations: Communication requires postMessage API
- Performance: Multiple iframes can impact page load time
- Mobile Support: Some embedded apps may not be mobile-friendly
Removing Dashboard Apps
To remove a dashboard app:- Navigate to Settings > Integrations > Dashboard Apps
- Find the app you want to remove
- Click Delete
- Confirm the removal
Next Steps
- Design responsive embedded applications
- Implement authentication for embedded apps
- Set up cross-origin communication if needed
- Monitor usage and performance of dashboard apps
- Explore building custom Chatwoot integrations for deeper functionality

