Skip to main content

Overview

Consuelo’s dashboard iFrame widget allows you to embed external analytics tools directly in your CRM. This creates a unified view of your customer data and analytics.

Supported Tools

ToolIntegration MethodBest For
PostHogiFrame embedProduct analytics, funnels
AmplitudeiFrame embedUser behavior, cohort analysis
MixpaneliFrame embedEvent tracking, retention
Google AnalyticsiFrame embedTraffic, acquisition
Custom DashboardsiFrame embedAnything you build

PostHog Integration

Step 1: Create a Shared Dashboard

  1. In PostHog, build your growth dashboard with:
    • Signup funnel
    • Feature adoption
    • Cohort retention
    • Revenue metrics
  2. Click ShareShare dashboard
  3. Enable Public link
  4. Copy the share URL

Step 2: Add to Consuelo

  1. Go to Dashboards in Consuelo
  2. Open your growth dashboard
  3. Click + Add Widget
  4. Select iFrame
  5. Paste the PostHog share URL
  6. Configure dimensions (recommended: full width, 600px height)
  7. Save
Public links don’t require authentication. Ensure your dashboard doesn’t contain sensitive data, or use password protection if available.

Amplitude Integration

Step 1: Create a Dashboard

  1. In Amplitude, navigate to Dashboards
  2. Create a new dashboard
  3. Add charts for:
    • Active users
    • Conversion events
    • Retention curves
    • Event segmentation

Step 2: Get Embed URL

  1. Click Share on your dashboard
  2. Select Embed
  3. Copy the iframe embed URL

Step 3: Add to Consuelo

Follow the same steps as PostHog above.

Custom Analytics Dashboard

Build your own analytics dashboard and embed it:

Example: Next.js Dashboard

// pages/dashboard/growth.js
export default function GrowthDashboard() {
  return (
    <div className="dashboard">
      <h1>Growth Metrics</h1>
      <div className="metrics">
        <MetricCard title="Signups Today" value={120} />
        <MetricCard title="Activation Rate" value="45%" />
        <MetricCard title="MRR" value="$12,500" />
      </div>
    </div>
  );
}
Deploy and embed the URL in Consuelo.

Data Synchronization

Option 1: Direct iFrame (Read-Only)

External tool displays data independently. No data flows between systems. Pros:
  • Simple setup
  • No data sync needed
  • Tool-native visualizations
Cons:
  • Data lives in two places
  • No single source of truth
  • Can’t combine CRM + analytics data

Option 2: API Integration (Two-Way Sync)

Use Consuelo’s GraphQL API to sync data:
// Sync signups from analytics to Consuelo
const syncSignups = async () => {
  const signups = await fetchAnalyticsSignups();
  
  for (const signup of signups) {
    await consuelo.mutate({
      mutation: CREATE_PERSON,
      variables: {
        data: {
          email: signup.email,
          signupDate: signup.timestamp,
          acquisitionChannel: signup.utm_source
        }
      }
    });
  }
};
See Import Automation for detailed patterns.

Security Considerations

  • Use HTTPS for all embed URLs
  • Avoid embedding dashboards with PII if using public links
  • Configure CSP if self-hosting Consuelo
  • Review permissions in external tools regularly

Refresh and Caching

iFrame Behavior

  • Content loads fresh on dashboard open
  • External tools may cache data
  • No automatic refresh while viewing

Best Practices

  1. Manual refresh: Reload the dashboard page
  2. Scheduled exports: Use Scheduled Reports
  3. Real-time alerts: Configure in external tools, not via iFrame

Troubleshooting

iFrame Not Loading

IssueSolution
X-Frame-Options deniedTool blocks embedding. Check tool settings.
Mixed content errorEnsure HTTPS URLs
Authentication requiredUse public/shared links, not authenticated URLs
Blank widgetCheck URL is correct and accessible

Mobile Responsiveness

iFrame widgets may not resize perfectly on mobile. Test your dashboards on different screen sizes.

Alternative: Full-Screen Mode

For complex dashboards, use external tools directly:
  1. Build dashboards in your analytics tool
  2. Bookmark alongside Consuelo
  3. Use workflow triggers to sync key events to Consuelo
This avoids iFrame limitations while maintaining data flow.