subtitlesCapture logs, network requests from Customer Jams

Install Jam.js to get console logs, network requests, and more, in every customer support ticket.

circle-info

Note: This version of Jam.js is for our Intercom Integration. For installing Jam.JS with Recording Links, see Recording Links.

Here’s a preview of what you’ll get with every support ticket:

How to set up Jam.js?

Installing Jam.js takes under 5 min guaranteed, and if it takes you a second longer, we'll buy you a pizza. 🍕

1. Go to jam.devarrow-up-right and select the team where you want your Jams from Intercom to appear.

2. Copy the team ID from the URL

3. Add the team ID to this code snippet

4. Paste the snippet into your web app's codebase

In order to guarantee jam.js can properly capture console and network requests, it should be the first <script> tag on the page.

For example, here’s where the jam.js script would go in an example template HTML file for a Single Page App:

Because we include the async and defer tags within the script snippet, fetching the jam.js script will not impact page load times.

5. Modify CSP (if your site has this enabled)

(If your site does not specify CSP directives, you can skip this step.)

Some sites specify Content-Security-Policyarrow-up-right directives via either a header or meta tag.

A frame-src or script-src directive that doesn't include *.jam.dev will block Jam.js from including console logs with your user's Jams.

To fix this, modify your CSP header or meta tag to allow *.jam.dev as both:

  • frame-src

  • script-src

How to test jam.js?

Once jam.js is installed, every Jam your users create will have console logs and network requests attached.

To test this out, issue a screen recording request, and begin recording your web app.

Open devtools for your web app, and run the following test commands in console:

Run these commands like so

Now, you should have console and network events generated and captured for your recorded Jam.

To confirm, submit the Jam, then open its link and click on the Console and Network tabs. Your Jam should include at least 1 console and network event, each.

Here’s how this might look:

Jam.Metadata

With one additional function call, jam.metadata(), you can ensure that every Jam submitted from your website includes the metadata you need to debug the bug. You can log anything in Jam.Metadata: simple static values like User ID, to any data like redux or react state. Whatever you need to debug, just send it to Jam.Metadata so it's always there for you in any ticket. More information can be found here.

Current limitations

  • If Jam.js is installed within an iframe, the top level logs will not get captured, e.g. using Jam.js on embedded Shopify apps.

  • Console and network event capture is currently unavailable for Jams created in Firefox, Safari, or incognito mode. Support for these browsers is coming soon.

  • Because we include the async and defer tags, the first page load (or any page load, when cache is disabled) will not guarantee Jam.js runs early enough to capture console and network requests. This is a tradeoff we’ve made to make sure we do not impact your app’s load times.

Last updated

Was this helpful?