Skip to main content
RapidDev - Software Development Agency
retool-integrationsREST API Resource

How to Integrate Retool with Crazy Egg

Crazy Egg has limited public API access — most data is accessed through account exports and the Crazy Egg dashboard rather than a documented REST API. Connect Retool to Crazy Egg by importing snapshot and heatmap export data into a Retool Database table, then build a CRO (conversion rate optimization) dashboard that combines Crazy Egg click and scroll data with analytics from Google Analytics, Mixpanel, or your internal database for a unified conversion intelligence panel.

What you'll learn

  • How to access Crazy Egg's API or export snapshot data for use in Retool
  • How to configure a REST API Resource in Retool for Crazy Egg's reporting endpoints
  • How to build a CRO dashboard that combines Crazy Egg heatmap data with other analytics sources
  • How to track conversion rate trends by combining click map data with goal completion data
  • How to create a unified user behavior dashboard in Retool for the product and marketing team
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Beginner16 min read25 minutesOtherLast updated April 2026RapidDev Engineering Team
TL;DR

Crazy Egg has limited public API access — most data is accessed through account exports and the Crazy Egg dashboard rather than a documented REST API. Connect Retool to Crazy Egg by importing snapshot and heatmap export data into a Retool Database table, then build a CRO (conversion rate optimization) dashboard that combines Crazy Egg click and scroll data with analytics from Google Analytics, Mixpanel, or your internal database for a unified conversion intelligence panel.

Quick facts about this guide
FactValue
ToolCrazy Egg
CategoryOther
MethodREST API Resource
DifficultyBeginner
Time required25 minutes
Last updatedApril 2026

Build a CRO Intelligence Dashboard in Retool Using Crazy Egg Data

Crazy Egg is a behavioral analytics tool that captures where visitors click, how far they scroll, and which elements are getting the most interaction on your website. While Crazy Egg's own interface provides visual heatmap and click map overlays that are excellent for design decisions, the underlying data — click counts, scroll depth percentages, session recordings metadata — becomes far more powerful when combined with conversion funnel data, A/B test results, and traffic source information from other tools. A Retool dashboard enables this combination.

Crazy Egg's API availability varies by plan and has historically been limited compared to more developer-focused analytics platforms. The reporting API provides snapshot-level data: for each configured snapshot (a page being tracked), you can retrieve click counts, scroll depth metrics, and element-level interaction data. For organizations with API access, this data can be queried directly in Retool. For those without API access, Crazy Egg's CSV export feature provides the same underlying data in a format that can be imported into Retool Database for dashboard use.

The most valuable Retool use case for Crazy Egg data is correlating behavioral signals with conversion outcomes. A Retool app might show a table of landing pages with their Crazy Egg above-the-fold click percentage alongside their conversion rate from Google Analytics — pages with high scroll depth but low conversion rate are candidates for CTA optimization. Pages with low scroll depth where the CTA is below the fold are candidates for layout changes. These insights exist in the data but require joining two different data sources, which is exactly what Retool excels at.

Integration method

REST API Resource

Crazy Egg provides limited programmatic API access primarily through a reporting API that requires a paid plan. Where the API is available, Retool connects via a REST API Resource using API key authentication. For organizations without API access, the practical approach is to export Crazy Egg snapshot data as CSV, import it into a Retool Database table, and combine it with other analytics data sources available in Retool. JavaScript transformers normalize exported heatmap data into actionable CRO dashboards.

Prerequisites

  • A Crazy Egg account with at least one snapshot configured and data collected
  • Crazy Egg API access (available on paid plans) or the ability to export snapshot data as CSV
  • A Retool account with permission to create Resources and access to Retool Database for CSV data import
  • Access to a secondary analytics data source (Google Analytics, Mixpanel, or an internal database) for combination dashboards
  • Basic familiarity with CSV data import and REST API concepts

Step-by-step guide

1

Determine your Crazy Egg API access and authentication method

Crazy Egg's API availability depends on your subscription plan and account configuration. To check whether API access is enabled for your account, log in to Crazy Egg and navigate to Account Settings. Look for an API or Integrations section. If API credentials (typically an API key or token) are visible, note them down — Crazy Egg's API uses key-based authentication passed as a header or URL parameter. If no API section is present, your plan does not include API access, and you will use the CSV export approach instead. For accounts with API access, Crazy Egg provides a reporting API endpoint at https://api.crazyegg.com/v1/ with endpoints for snapshots and their associated data. The API key is typically sent as an x-api-key header or as a query parameter named api_key — consult the API documentation linked in your account settings for the exact authentication method. For CSV-based integration (no API access): in Crazy Egg, open a snapshot, click the Export or Download icon, and select CSV export. The export includes page element data with click counts, percentage of total clicks per element, and scroll depth data. Download this file and you will import it into Retool Database in a later step. Store your API key (if available) in a Retool Configuration Variable named CRAZY_EGG_API_KEY marked as secret.

Pro tip: Even if your Crazy Egg account has API access, exporting snapshot data as CSV and importing it into Retool Database is often the more reliable approach for historical data analysis, since the API typically returns only current snapshot state rather than historical trend data.

Expected result: You have either a Crazy Egg API key stored in a Retool Configuration Variable, or you have exported at least one snapshot's data as CSV for import into Retool Database.

2

Configure the REST API Resource or import CSV data into Retool Database

Choose the integration path appropriate for your Crazy Egg account. If you have API access: navigate to Retool Resources tab, click Add Resource, select REST API. Name the resource 'Crazy Egg API'. Set Base URL to https://api.crazyegg.com/v1. Under Authentication, add a custom header: x-api-key → {{ retoolContext.configVars.CRAZY_EGG_API_KEY }}. Add Content-Type: application/json as an additional header. Save the resource. Test with a GET request to /snapshots to verify the connection. If using CSV import instead: navigate to Retool Database (accessible from the left sidebar in Retool). Click Create new table. Name the table 'crazy_egg_snapshots'. Define columns: snapshot_id (text), page_url (text), element_name (text), click_count (integer), click_percentage (decimal), scroll_depth_avg (decimal), date_range (text), total_visits (integer). Click Import CSV and upload your Crazy Egg export file. Map the CSV column headers to your table columns. Once imported, create a query in your Retool app using the Retool Database resource: SELECT * FROM crazy_egg_snapshots ORDER BY click_count DESC. This query is the foundation of your behavioral data panel. For ongoing use, establish a weekly process of exporting updated snapshot data from Crazy Egg and re-importing to the Retool Database table.

create_crazy_egg_table.sql
1-- SQL: Create the Crazy Egg data table in Retool Database
2CREATE TABLE crazy_egg_snapshots (
3 id SERIAL PRIMARY KEY,
4 snapshot_id TEXT,
5 page_url TEXT,
6 element_name TEXT,
7 element_type TEXT,
8 click_count INTEGER DEFAULT 0,
9 click_percentage DECIMAL(5,2) DEFAULT 0,
10 scroll_depth_avg DECIMAL(5,2) DEFAULT 0,
11 total_visits INTEGER DEFAULT 0,
12 date_range TEXT,
13 imported_at TIMESTAMP DEFAULT NOW()
14);

Pro tip: When importing Crazy Egg CSV exports into Retool Database, delete the existing rows for the same snapshot_id before re-importing to avoid duplicate data. Use the SQL DELETE FROM crazy_egg_snapshots WHERE snapshot_id = 'YOUR_SNAPSHOT_ID' as a cleanup step before each import.

Expected result: Either the Crazy Egg REST API resource is configured and returning snapshot data, or a Retool Database table is populated with imported Crazy Egg snapshot data and returning rows from a test query.

3

Build snapshot listing and click data queries

Create queries to retrieve and display Crazy Egg data. For API-connected setups, create a query named 'getSnapshots'. Set Method to GET and Path to /snapshots. The response returns a list of configured snapshots with their IDs, page URLs, tracking status, and recording counts. Create a second query named 'getSnapshotData'. Set Method to GET and Path to /snapshots/{{ snapshotsTable.selectedRow.id }}/data. This retrieves element-level click data for the selected snapshot — the specific response format varies by API version but typically includes an array of page elements with their coordinates, click counts, and percentage of total clicks. Create a transformer that normalizes the snapshot data into a flat table structure: element name or identifier, click count, percentage of page total clicks, position on page (above or below fold, computed from Y coordinate relative to viewport height), and an engagement label ('High', 'Medium', 'Low' based on click percentage thresholds). For CSV-based setups, create a query using Retool Database: SELECT *, CASE WHEN click_percentage >= 10 THEN 'High' WHEN click_percentage >= 3 THEN 'Medium' ELSE 'Low' END as engagement_level FROM crazy_egg_snapshots WHERE snapshot_id = '{{ snapshotSelector.value }}' ORDER BY click_count DESC.

snapshot_data_query.sql
1-- SQL query for CSV-imported Crazy Egg data
2-- Run against Retool Database with the crazy_egg_snapshots table
3SELECT
4 page_url,
5 element_name,
6 element_type,
7 click_count,
8 click_percentage,
9 scroll_depth_avg,
10 total_visits,
11 CASE
12 WHEN click_percentage >= 10 THEN 'High'
13 WHEN click_percentage >= 3 THEN 'Medium'
14 ELSE 'Low'
15 END as engagement_level,
16 date_range
17FROM crazy_egg_snapshots
18WHERE snapshot_id = {{ snapshotSelector.value }}
19ORDER BY click_count DESC
20LIMIT 50;

Pro tip: Sort element data by click_count descending so the most-clicked elements appear at the top of the Table. This immediately surfaces which elements users interact with most on the tracked page — the top 5 most-clicked elements are typically the starting point for CRO discussions.

Expected result: The snapshot listing query returns all configured Crazy Egg pages, and selecting a snapshot loads element-level click data sorted by engagement level in the detail Table.

4

Build the combined CRO analytics view

Create the cross-tool combination queries that make Retool's integration with Crazy Egg truly valuable. For a Google Analytics integration, create a separate REST API resource for the Google Analytics Data API (or use Retool's native Google Analytics connector if available on your plan). Create a query named 'getPageConversionRates'. This queries your analytics platform for conversion rate, bounce rate, and session duration per page URL, for the same pages tracked by Crazy Egg. Create a JavaScript query named 'mergeClickAndConversionData'. This joins Crazy Egg click data (keyed by page URL) with Google Analytics conversion data (keyed by page path) using a .find() or .reduce() in JavaScript to match records by URL. The merged dataset contains both behavioral signals (click density, scroll depth) and outcome metrics (conversion rate, bounce rate) per page. Create a transformer that computes a 'CRO Opportunity Score' for each page: a page with scroll_depth_avg > 60 AND conversion_rate < 2.0 scores 'High Priority'; scroll_depth_avg > 40 AND conversion_rate < 5.0 scores 'Medium Priority'; all others score 'Monitor'. This computed column gives the CRO team an actionable prioritization signal directly in the Retool table.

merge_cro_data.js
1// JavaScript query: merge Crazy Egg and Analytics data
2const crazyEggPages = getCrazyEggSummary.data || [];
3const analyticsPages = getPageConversionRates.data || [];
4
5return crazyEggPages.map(cePage => {
6 const analyticsPage = analyticsPages.find(ap =>
7 ap.page_path === new URL(cePage.page_url).pathname
8 ) || {};
9
10 const scrollDepth = cePage.scroll_depth_avg || 0;
11 const convRate = analyticsPage.conversion_rate || 0;
12
13 let opportunity = 'Monitor';
14 if (scrollDepth > 60 && convRate < 2) opportunity = 'High Priority';
15 else if (scrollDepth > 40 && convRate < 5) opportunity = 'Medium Priority';
16
17 return {
18 page_url: cePage.page_url,
19 total_visits: cePage.total_visits,
20 scroll_depth: scrollDepth.toFixed(1) + '%',
21 top_element_clicks: cePage.top_element_clicks,
22 conversion_rate: convRate > 0 ? convRate.toFixed(2) + '%' : 'N/A',
23 bounce_rate: analyticsPage.bounce_rate
24 ? analyticsPage.bounce_rate.toFixed(1) + '%'
25 : 'N/A',
26 cro_opportunity: opportunity
27 };
28});

Pro tip: For complex CRO intelligence platforms combining Crazy Egg behavioral data with multivariate testing results, session replay metadata, and conversion funnel analytics, RapidDev's team can help architect a unified CRO operations dashboard.

Expected result: A merged CRO data view shows each tracked page with behavioral metrics from Crazy Egg and conversion metrics from your analytics platform, with a computed priority score for CRO focus.

5

Assemble the CRO dashboard UI

Build the complete Retool CRO dashboard. At the top, add a page URL filter allowing users to select from all tracked Crazy Egg pages (using a Select component populated from the snapshots list) and a date range picker for the analytics data period. Add a stat bar with four Stat components: Tracked Pages (total snapshot count), Average Scroll Depth across all pages, Pages with High CRO Priority (computed count), and Total Visits across tracked pages. Below the stats, show the main combined data table — the mergeClickAndConversionData output — in a Table with columns: page_url (truncated, with full URL in a tooltip), scroll_depth, top_element_clicks, conversion_rate, bounce_rate, and cro_opportunity (shown as a color-coded tag: red for High Priority, yellow for Medium Priority, gray for Monitor). Sort the table by cro_opportunity with High Priority rows first. Below the main table, add a detail panel that appears when a row is selected, showing element-level click data for the selected page from the getSnapshotData query. This detail panel shows the specific page elements and their click counts, helping the CRO team understand which elements to focus on for the prioritized pages. Add a 'View in Crazy Egg' link button that opens the Crazy Egg snapshot URL directly for visual heatmap review.

Pro tip: Add a 'Last Updated' timestamp display in the dashboard header showing when the Crazy Egg data was last imported (from the max imported_at value in Retool Database). This communicates data freshness to the CRO team and reminds the data manager when to run the next CSV import.

Expected result: A complete CRO intelligence dashboard shows tracked pages ranked by opportunity score, combining Crazy Egg behavioral data with conversion analytics, with drill-down to element-level click data for each page.

Common use cases

Build a page performance comparison table with behavioral and conversion data

Create a Retool dashboard that combines Crazy Egg snapshot data (click rate, scroll depth, above-fold engagement) with Google Analytics or your analytics platform's conversion rate data per page. Show each tracked page with both behavioral metrics and outcome metrics side by side. Color-code pages that have high engagement but low conversion to identify CRO opportunities. This cross-data view is impossible in either tool alone.

Retool Prompt

Build a Retool CRO dashboard combining Crazy Egg click data and Google Analytics conversion rates. Show a Table with page URL, unique visitors, above-fold click rate (from Crazy Egg), scroll depth average, goal completions, and conversion rate (from Analytics). Highlight rows where scroll depth is above 80% but conversion rate is below 2% as high-priority CRO candidates.

Copy this prompt to try it in Retool

Build a heatmap snapshot status and data management panel

Create a Retool panel that lists all Crazy Egg snapshots with their tracking status, number of recordings collected, date range, and total visits tracked. Allow team members to see which pages are actively being tracked and which snapshots have enough data for reliable analysis. Include the direct Crazy Egg deep-link URL for each snapshot so users can jump directly to the visual heatmap view without searching through Crazy Egg's interface.

Retool Prompt

Build a Retool snapshot manager for Crazy Egg. Show all snapshots in a Table with page URL, status (active/paused), total visits, recording count, and tracking start date. Add a filter for active-only snapshots. Include a Link column to open the snapshot in Crazy Egg directly. Add a Stat showing total pages being tracked.

Copy this prompt to try it in Retool

Build an A/B test CRO impact tracker combining Crazy Egg and test results

Create a Retool panel that tracks A/B tests run on pages being monitored by Crazy Egg. Show each test with the control and variant URLs, Crazy Egg click data for both variants (where separate snapshots exist), and the A/B test result from your testing platform. This gives the CRO team a single view for understanding not just which variant won but whether the behavioral patterns changed in ways that explain the result.

Retool Prompt

Build a Retool A/B test impact tracker. Show a Table of active tests with control URL, variant URL, test status, and winner. For each test, show Crazy Egg click rate and scroll depth for both control and variant. Add a Chart comparing conversion rates for control vs variant over the test duration from your analytics data.

Copy this prompt to try it in Retool

Troubleshooting

Crazy Egg API returns 401 or 403 errors on all requests

Cause: API access is not enabled for your Crazy Egg subscription plan, or the API key stored in the Configuration Variable is incorrect or inactive.

Solution: Verify in your Crazy Egg account settings that API access is available and enabled for your plan. If the API section does not appear in account settings, your plan does not include API access — use the CSV export approach instead. If API settings exist but the key is not working, regenerate the API key from the account settings page and update the CRAZY_EGG_API_KEY Configuration Variable in Retool with the new value.

CSV import into Retool Database fails with column mapping errors

Cause: The Crazy Egg CSV export column headers do not match the column names defined in the Retool Database table, or the CSV contains data types that do not match the column types (e.g., percentage values with % symbol in a decimal column).

Solution: Open the CSV export in a spreadsheet application first to review the exact column names and data formats before importing. Clean percentage values by removing the % symbol and converting to decimal format (e.g., '15%' → 0.15 or 15.0 depending on your column definition). Use Retool's CSV import column mapping dialog to manually match each CSV column to the correct table column. If the CSV structure changes between exports, update the table schema to match.

Page URL matching fails when joining Crazy Egg data with Google Analytics data

Cause: Crazy Egg stores the full URL (https://example.com/page) while Google Analytics stores only the path (/page). The .find() comparison fails because the strings do not match exactly.

Solution: In the JavaScript merge query, extract the pathname from the Crazy Egg URL using new URL(cePage.page_url).pathname before comparing to the Analytics page_path. Also strip trailing slashes from both values before comparison to handle inconsistencies: normalize by using path.replace(/\/$/, '') on both sides. If your Analytics data includes query parameters in the page path, strip those as well using path.split('?')[0].

typescript
1// Normalize URLs for matching
2const cePath = new URL(cePage.page_url).pathname.replace(/\/$/, '').split('?')[0];
3const analyticsPath = ap.page_path.replace(/\/$/, '').split('?')[0];
4return cePath === analyticsPath;

Scroll depth values show as 0 or null for all pages in the dashboard

Cause: Crazy Egg's scroll depth data is stored in a different field name than expected in the transformer, or scroll data is not included in the API response endpoint being queried (some endpoints return only click data).

Solution: Inspect the raw API response or CSV export structure to find the actual field name for scroll depth data. Common field names in Crazy Egg exports include: avg_scroll_percentage, scroll_depth, scroll_avg, or average_scroll. Update the transformer to reference the correct field name. If using the API, check whether a separate /snapshots/{id}/scroll endpoint exists for scroll-specific data that must be queried separately from click data.

Best practices

  • Use Crazy Egg data as one input in a multi-source CRO dashboard rather than in isolation — the behavioral data is most actionable when shown alongside conversion rates, bounce rates, and funnel drop-off data from your analytics platform
  • For CSV-based integration, establish a weekly data refresh schedule where someone exports updated Crazy Egg snapshots and re-imports to Retool Database — document this process and set a calendar reminder so the dashboard stays current
  • Store snapshot URLs in the Retool Database table alongside click data so users can click directly from the Retool dashboard to the Crazy Egg visual heatmap — this makes the dashboard a navigation hub rather than a data replacement
  • Use scroll depth as a threshold metric for CRO prioritization: pages where 60%+ of visitors scroll past the fold are candidates for CTA placement optimization, while pages with low scroll depth suggest above-the-fold content is not compelling
  • Combine Crazy Egg click density data with accessibility audit results in your Retool dashboard — elements with high click rates that are also keyboard navigation targets deserve special attention in design reviews
  • Apply date range filters consistently across both Crazy Egg data and your analytics data to ensure the behavioral and conversion metrics cover the same time period — mismatched date ranges produce misleading correlation data
  • Tag each Retool Database import with the date range of the Crazy Egg snapshot data it represents, not just the import timestamp — this allows the CRO team to correctly interpret trend data when reviewing historical snapshots
  • Create separate Retool apps for the CRO strategy view (page-level priorities for managers) and the element analysis view (click-level detail for designers) — the audiences have different data needs and different levels of technical context

Alternatives

Frequently asked questions

Does Crazy Egg have a public API for Retool integration?

Crazy Egg has limited API access that varies by plan. Some paid plans include a reporting API for accessing snapshot and click data programmatically. Check your Crazy Egg account settings under the Integrations or API section to see if API credentials are available for your account. If not, the CSV export approach — exporting snapshot data and importing it into Retool Database — provides equivalent analytical capabilities with a data refresh lag.

What is the most useful data to pull from Crazy Egg into Retool?

The most actionable Crazy Egg data for a Retool dashboard is scroll depth per page, above-the-fold click percentage, and the click distribution across page elements (which elements attract the most interaction). When combined with conversion rate data from your analytics platform, these metrics identify pages where users are engaged (scrolling, clicking) but not converting — the highest-priority CRO opportunities.

Does Retool have a native Crazy Egg connector?

No, Retool does not have a native Crazy Egg connector. You connect either through a REST API Resource (for accounts with API access) or by importing Crazy Egg's CSV exports into Retool Database (for all accounts). The CSV import approach works on all Retool and Crazy Egg plans and provides a reliable data pipeline when set up as a regular scheduled process.

How often should I refresh Crazy Egg data in Retool?

For API-connected setups, configure queries to auto-refresh every 15-60 minutes depending on your traffic volume — Crazy Egg aggregates data in near-real-time but extreme freshness is rarely necessary for behavioral analysis. For CSV-imported data, weekly updates are typically sufficient for CRO reporting purposes since behavior patterns change slowly and snapshot analysis is most meaningful over multi-week periods rather than hour-by-hour.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Integrations are where projects stall

We wire Retool integrations like this one every week — auth, webhooks, edge cases included. Fixed-price builds from $13K, delivered in 6–10 weeks.

Talk to an integration engineer

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.