Table of Contents

Installing Pulse Insights Code Snippet

Viewing All Surveys From  Your Dashboard

Creating Or Editing A New Survey

QAing Surveys With Live Preview


Inviting Users To Collaborate

Displaying Surveys Using JavaScript

Capturing Custom Data

Integrating Survey Responses With Other Services

Using The Pulse Insights API To Submit Survey Responses

Progressive Profiling

Cross Channel Surveys

Installing Pulse Insights Code Snippet

In order for surveys to display, you need your Pulse Insights code snippet placed on all pages that will collect feedback.

We recommend placing your Pulse Insights code snippet, found under the setup menu, just above the closing body of all pages of your entire site(s). The Pulse Insights code snippet also works well when deployed by a tag management system.

  • Your Pulse Insights snippet works across secure and non-secure pages
  • We recommend placing above the closing /body tag or configuring to fire after the page has loaded
  • We recommend placing your snippet on all pages of your site
  • You can deploy the Pulse Insights tag via any tag manager. Many have built-in templates for our tag.
  • The code snippet is asynchronous and won’t block the rest of the page from loading
  • The Pulse Insights JavaScript is loaded from a CDN so it is highly available and loads from a server close to the end user



Viewing All Surveys From Your Dashboard

Pulse Insights gives you an at-a-glance view of your surveys from your Survey Dashboard.

Key features of the Survey Dashboard include:

  • Survey name
  • Survey Status:
    • Draft: means not currently firing; used before a survey launches
    • Live: means it is firing for end users
    • Paused: means it is temporarily not firing for end users, but is expected to be turned back live
    • Complete: means the survey has reached either its goal or end date
    • Archived: means that it is complete and not actively being managed or analyzed
  • Impressions: shows many times the survey has been rendered to a page
  • Submissions: number of completed submissions. For surveys with follow-up questions, at least one question was answered.
  • Submission rate: submissions / impressions
  • Goal and Goal % Complete: number of submissions you’re targeting. Survey will stop displaying when the submissions goal is met.
  • Last submission: date and timestamp of the most recent survey submission
  • Last change: user and datestamp of the most recent edit to the survey

You can also create new surveys, edit/view existing surveys, delete surveystoggle live/paused, and search surveys from the dashboard.



Creating A Survey

Creating a new survey consists of three key steps:

  1. Defining the basics like Survey Name and Submission Goal (General)
  2. Defining the questions and survey formatting
  3. Defining targeting conditions that define when survey will render to end users

Step 1: Defining The General Survey Options

Survey Name: We suggest structuring your naming conventions so that it remains easy to find surveys as your learning plan grows.

Survey Status:

  • Draft: means not currently firing; used before a survey launches
  • Live: means it is firing for end users
  • Paused: means it is temporarily not firing for end users, but is expected to be turned back live
  • Complete: means the survey has reached either its goal or end date
  • Archived: means that it is complete and not actively being looked at

Submissions Goal: the submissions goal represents how many responses you’d like to receive to feel confident that you have a representative set of answers to your question.

Step 2: Defining Questions & Formatting

On this tab, you define survey questions to ask, follow-up question logic, and how the survey is formatted for end users.

The page is divided into question definition (left) and formatting options (right).

Question Formatting

Invitation: an optional invitation enables users to opt-in to take a brief survey. Since Pulse Insights Surveys are often just one question long and used in-line, an invitation to take a survey is typically not necessary and is not used by default.


Question Types

Pulse Insights supports single answer, multiple answer, and free text questions. Pulse Insights also offers an add-on product, Concierge, which enables a rich & immersive custom response to a user’s selection. If available, this is configured using the Custom Content Card. When creating a new question, you can select the appropriate question type.

Select Question Type


Single Choice Questions:

Single choice questions mean that the user selects the single most appropriate answer from a list of options. Single choice answers are indicated via radio buttons or butons.

Single Choice


To configure single choice questions: you can add responses options by clicking the “Add Response” button. And remove response options by clicking the X on the right of each line.

Single Choice Console

Note: all Pulse Insights fields support markdown as follows:

  • Bold is indicated by adding * asterisks * on either side of what you want to be bolded.
  • Italics is indicated by adding _ underscores _ on either side of what you want to be italicized.

The Randomize Order of Responses option will display the possible answers in random order when the survey widget is rendered for end users. This can prevent biases related to the order of the options.


There are two settings:

  1. Randomize all response
  2. Randomize all except the last — this is useful if you have an ‘Other’ option that you want to remain last


Multi-Choice Questions:

Multi-Choice questions enable the user to select one or more responses at a time.

Checkbox Widget

Configuration of multi-choice questions in the console is nearly identical to configuring single-choice questions, except there is an option to configure the maximum number of checkboxes the user can select.

Multi-choice config


Free Text Questions:

Free text questions allow you to collect qualitative data from users.

  • Question is the label that is displayed above the input field.
  • Hint text is present in the input field until the user starts typing
  • Submit Label allows you to customize the text of the form’s submit button
  • Options
    • Height: defines how high the input field is to collect user feedback
    • Max length is the number of characters you can accept for this field

Free Text Widgets will render like so:

Related: see reporting for free text questions.

Concierge & Custom Content:

Concierge is an add-on product. If available, it enables you to display rich, immersive content in response to a survey answer. For example, if a user doesn’t understand something, can’t find something, or needs help, you can dynamically help the user by showing appropriate content.

Custom Content Card

The Card Name is used only for reference so you know the content without having to open up the Custom Content Editor.


  • Full Screen take-over creates an overlay of the entire webpage if selected. If not selected, the custom content is displayed in the same widget container as the questions.
    • Background and Opacity further help customize the look and feel of the content overlay
  • Auto-close after [N] seconds enables you to display custom content but then automatically have the experience return to what the user was doing. This is useful if you want to help the user but don’t want to require that the user interact with the content.
  • Auto-redirect to [URL] after [N] seconds — this is useful if the user can’t find what she is looking for. You can display some contextual content about where you are sending the user and then send the user automatically.

Managing Custom Content

Custom Content allows simple WYSIWYG editing or advanced HTML editing, complete with code beautification and line numbers.


If you upload images, they are hosted at our CDN, Cloudfront.

See question branching below to configure when Custom Content is displayed.

Follow-up Questions:

You can add multiple follow-up questions by clicking “Add Follow-up Question.” However, be careful! The reason why Pulse Insights surveys get high response rates and actionable insights is because questions are targeted and as easy to answer as they are to close. Use follow-up questions judiciously!

Question Branching


You can define the follow-up question by dragging and dropping from any response to any other follow-up question as shown above. In this case, if the user indicates that we didn’t do a great job of communicating differentiators on a page, we follow up by asking about what could have been done better.

If there isn’t a branching line drawn, the default next step is the “Thank You” message.

Thank You Message

The Thank You Message is displayed when a user completes a survey submission. It automatically closes after a few seconds so the end user can get back to business.

You can also optionally show the survey results to the end user, which turns a survey into a poll. Simply check the ‘show survey results’ checkbox on the Thank You card.

The Formatting Pane

The formatting pane is broken up into a handful of tabs including:

  • Widget Type
  • Widget Background
  • Question Formatting
  • Advanced Formatting

Pane: Widget Type

widget pane

There are four types of widget:

  1. Docked Widget displays the survey along the bottom of the browser on top of page content
  2. Inline displays the survey within the content of the page
  3. Top bar displays the survey docked along the top of the browser using the full width of the page. It can display on top of the page or can optionally push the page content down to accommodate the survey
  4. Bottom bar displays the the survey docked along the bottom of the browser using the full width of the page.

Note: on mobile phones, Pulse Insights over-rides these survey types and displays a more suitable overlay format to optimize the mobile user experience.

Placement Options

Some widget types have addition placement options:

  • Docked Widget can be placed horizontally along the bottom of the browser starting from the left or right edge, offset in pixels (px) or a percentage of total width.
  • Inline surveys are targeted to a particular HTML div or span. There is a subsequent option to place the survey before or after the div content. Additionally, there is an option to place the survey in a different div for mobile devices since sometimes mobile devices have a different page layout.
    • Example: input #survey into the target if the page contains a <div id=”survey”></div>. Note: Pulse Insights will suppress survey rendering if the specified div is not found on the page.
    • Additionally, the survey can optionally be offset from the div in either % or px by using the top, bottom, left, and right offset options
  • Top bar has a pusher option. This option will push down the page contents instead of overlaying the page. However, it cannot push down fixed position content.




Pane: Widget Background

widget bg

Widget background allows for

  • Customization of width of docked widget style surveys in px or %
  • Customization of background color using hex value or color picker

Pane: Question Formatting

question formatting

Question Formatting allows for

  • Customization of the Question font color via a color picker or hex value
  • Customization of the Answer font color via a color picker or hex value



 Advanced Formatting


The Advanced Formatting pane enables full control of survey styling by adding custom CSS.

#_pi_surveyWidgetContainer Container of the widget. Not positioned.
#_pi_surveyWidget The widget itself.
._pi_closeButton The close button.
._pi_startButton The start button.
._pi_invitationTextContainer The container of the invitation text.
._pi_question The container of the question text.
ul._pi_answers_container The container of the all the position answers.
ul._pi_answers_container li a Each answers link.
ul._pi_answers_container li a label Each answers label.



Step 3: Targeting Conditions


Targeting Conditions determines under which circumstances the survey renders.

Dates: you can optionally set start dates/times and end start dates/times and the survey will only display to end users if between those dates

Display Survey If: determines which URLs the survey will display on. There are two options:

  • URL Contains is the default and most frequently used option
  • Regular Expressions (Regex) is available to solve for advanced use cases

URL Contains Examples:

  • URL Contains pricing would display the survey on and
  • URL Contains would display the survey on all pages of
  • URL Contains would display the survey on all pages of the console subdomain
  • URL Contains utm_source=sem would display the survey for campaigns tagged with sem

Regex Matches Examples:

  • Regex Matches .* would display the survey on all pages where the Pulse Insights code snippet is present

Suppress If: The Suppress If fields work together with the Display If fields to determine which URLs the survey will fire on. Any “Suppress If” conditions that are satisfied prevent the survey from being displayed on those URLs.


  • Display If URL Contains and Suppress If URL Contains thank-you would display the survey on all pages of except those that contain thank-you in the URL.

Behavior Targeting: Enables targeting surveys based on the user’s behavior. For example, maybe you want to ask a question of a user after viewing 4 pages on the site. Or maybe you only want to ask a particular question of only first-time visitors.

Device/User Custom Data Targeting: Enables targeting surveys based values previously passed to Pulse Insights so you can ask questions only to a hyper-targeted segment of users.

For example, if you pass loyalty points balance, you can target a question to users who have over, say, 50000 points.

Numerous options are available:
Equals is an exact match. e.g., ‘customerType equals member’ only matches users with that exact value of customerType.

Contains is a partial match. e.g., ‘locale contains en’ matches users with locale of us-en and uk-en.

Exists means that some value is defined. e.g., ‘loyaltyStatus exists’ would match users that have any value–say silver, gold, or platinum.

Is Greater/Less Than evaluates the value. e.g., ‘pointsBalance is greater than 50000’. If the value is stored as a string, Pulse Insights will still attempt to evaluate it as a number.

Targeting Based On User’s Previous Responses: 
Previous Answer Targeting
You can ask follow-up questions to users who have given a specific answer to a survey in the past. This is a great way to dig deeper into the mindsets of your users and gather targeted feedback over time.

Sample Rate: Determines what percentage of impressions that match the eligibility conditions receive the survey; between 1 and 100%.

Devices: Enables device targeting so you can display the survey to mobile, tablet, and desktop devices independently.

Behavior On Close: This option will prevent this particular survey from rendering again if a user actively closes it. This affects only the user that closed the survey. Other surveys will continue to render based on their targeting criteria.

What if more than one survey is eligible for a given page?

If a user is eligible to see more than one survey, one will be chosen at random by Pulse Insights.

QAing Surveys With Live Preview

Pulse Insights offers a method to QA surveys before they go live to end users so that you can confirm they look great across browsers & devices.

You can access Live Preview from the top-right of the Edit Survey pages.

Screen Shot 2014-07-22 at 2.50.57 PM

Upon clicking Live Preview, you’ll be asked for the URL you’d like to view.

live preview

You can also turn Live Preview mode on by appending ?pi_live_preview=true to any URL that contains the Pulse Insights code snippet. You can turn off Live Preview Mode by appending ?pi_live_preview=false.

While in Live Preview mode, the survey displays only draft surveys for your browser, but not for other live users. Also in Live Preview mode, answers are not stored in your reporting, so you don’t need to manually remove any test responses. Similarly, custom data callback code does not execute to prevent sending non-production data into other systems.

To view a survey in Live preview mode, two requirements must be met:

  1. The Pulse Insights code snippet must be present on the page.
  2. The survey in question must be configured to display on that page
    • For example: URL targeting must include the page that is being tested
    • Note the two key exceptions:
      • If the survey status is set to Draft, it will still display as this is the point of Live Preview!
      • To prevent having to refresh more than once , the sample rate is temporarily set to 100%

Your browser will remain in live preview mode until the browser is closed.


Pulse Insights provides reporting via the User Interface and also enables exporting both summary and raw data for further analysis.


All counts are limited to the date range selected on the top-right of the reporting.

Impressions is how many times the survey was displayed.

Submissions is how many times at least one question from the survey was answered

Submission Rate is impressions / submissions

Days Active tells you the number of calendar days the survey has been live and collecting data

On each of these summary stats, you can see sparklines that show the trend of these metrics over time.

Results are aggregated by question into total responses and share (%).

Filtering Reporting

You can filter reporting by what people have answered to a specific question by clicking the any bar.  All other questions will then update to reflect results for those who gave that answer.

Filtered Reporting

Data Export

The data export link generated an XLSX file that includes additional details such as:

  • Aggregate results by day including impressions, submissions, and submission rate
  • Raw data including:
    • All survey question & response data
    • Date/Time stamp
    • IP address
    • Device ID (UDID)
    • Previous Surveys Answered
    • Browser
    • OS
    • Device Type (mobile, desktop, or tablet)
    • Visit count — the number of visits observed
    • Pageview count — the number of pageviews in current session at the time of submission
    • Custom Data — data describing the impression, page, or survey
    • Device Custom Data — data describing the device and user
    • Client Key

Reporting On Free Text Questions

Free text reporting is displayed as a word cloud so that you can quickly digest large numbers of responses and grasp frequency of usage. Similar words are automatically combined to give more relevant responses. You can see verbatim responses by clicking any word in the word cloud.

Inviting Users To Collaborate

Pulse Insights is inherently multi-user. To invite users to your Pulse Insights account, select User Management is under the Setup menu.

Simply enter an email address and click the invite button. She will receive an email with a unique token to finish setting up the account.

There are two role types–full access and reporting-only.

Reporting-only users have the following restrictions:

  • No ability to manage users
  • No ability to edit survey questions, formatting, or meta data
  • No ability to create or delete surveys
  • No ability to manage integrations

Also under User Management, you can see details of all the collaborators within an account.

Display A Specific Survey

Sometimes, you need more control over when a survey displays. For example:

  • If you want to target users and the data only exists on your back-end (for example, customers with product X)
  • If you want to fire a survey only after certain on-page interactions like scrolling, clicking a button, or submitting a form

To solve for this, you can use a JavaScript method to present a survey in real-time as follows:

pi('present', 88);

Where 88 is the id of the survey, which you can find by looking at the URL bar of your browser while editing a survey.

Please note that the survey might not render because the following rules are still evaluated:

Present Method Get Surveys
Survey Status Live status required Live status required
   Note: Draft status works with if browser is in preview mode. Draft status works with if browser is in preview mode.
Flight Dates (must be between begin & end dates) Respected Respected
Device Type Respected Respected
URLs Ignored – will still show even if condition isn’t satisfied Respected
Prev Response Ignored – will still show even if condition isn’t satisfied Respected
Behavior (Session Depth, Visits) Ignored – will still show even if condition isn’t satisfied Respected
Page Behavior (on click and such) Ignored – will still show even if condition isn’t satisfied Respected
CRM Data Ignored – will still show even if condition isn’t satisfied Respected
Sample Rate Ignored (set to 100%) Respected
Global IP Restrictions Respected Respected
If closed and configured to not not re-appear when closed Respected Respected
If answered (won’t display unless configured to allow refiring) Respected Respected

You can also use a URL parameter to present a specific survey.

Append ?pi_present=[surveyid] to any URL. If a survey is in Draft status, you will also need to append pi_live_preview=true to set the browser in preview mode.

Capturing Custom Data

You can capture custom data to be stored with Pulse Insights survey responses, which can give you additional information for analysis or the ability to link to other data sets.

Pulse Insights has two types of Custom Data:

  1. Additional details about the current survey impression or submission. For example, maybe the category of product the user is viewing, which isn’t obvious from the URL, would be helpful to have stored with the survey response.
  2. Additional details about the user/device that persist across multiple pageviews and sessions. For example, maybe the loyalty membership level, internal segmentation, or internally modeling propensity scores.


  • Custom Data is available for segmentation analysis (e.g. learning how satisfaction differs based on loyalty program level)
  • Custom Data can be passed in real-time to integration partners — even if it was passed in previous sessions or pageviews!
  • You can target surveys based on queries of a user’s Device Custom Data attributes (e.g., asking a question of any user who has more than 50000 loyalty points)

Setting Custom Data — Impression and Submission:

pi('set_custom_data', {a: 1});

The object can be anything including a JavaScript object, array, string, or integer. For example:

pi('set_custom_data', {cart_amount: 999, category: 'games'});

Option A) You can configure via the Pulse Insights User Interface under Setup / Data & Integrations.

Option B)  You can include your custom data capture in the code of the page. Custom Data needs to be executed before “pi(‘get’, ‘surveys’);” or “pi(‘present’, <survey id>);  in order to be captured with the survey response.

Setting Device/User Custom Data:

pi('set_device_data', {userID: '1234;, customerSegment: 'High Value'});

Device Data will send data to the user’s profile immediately via a network call. Custom Data will store the information in the PulseInsightsObject the current pageview and will be passed back to the user’s profile on impression or submission.

Integrating Survey Responses With Other Services

Pulse Insights was built to easily integrate into other services. For example:

  • You might want to push survey responses into Google Analytics or Adobe Analytics so you can add the missing context to traditional web analytics data
  • If the survey is targeted to your customers, you might want to push results into your CRM system
  • You may want to place the current user into a DMP segment or A/B Test segment based on what they answer
  • Similarly, you might want to push preferences into your Personalization profile

Under Setup, you’ll find Data & Integrations.


There are two types of callback:

  1. Onanswer – executes when a user submits any question
  2. Oncomplete – executes when a user reaches the Thank You card or closes an incomplete survey.

When a user submits a survey, Pulse Insights will execute the JavaScript code in the input field. You can use the Pulse Insights JavaScript Object to pass the user’s answers and other dynamic data into other services such as web analytics.

You can also, optionally, include your callback code directly in the page as follows:

pi('oncomplete', function(survey) {
     ... your callback code here ...


pi('onanswer', function(survey) {
     ... your callback code here ...

Note: In Live Preview Mode, callbacks do not execute to prevent sending non-production data into other systems.

Using The Pulse Insights API To Submit Survey Responses

For situations where you can’t use the Pulse Insights code snippet to render surveys and collect data, you can use the Pulse Insights Survey Response API instead.

Survey responses are passed in the following format:

//[question ID]/a/[answer ID]?identifier=PI-XXXXXXXX

For example:

Capturing Free Text via API

You can use the text= parameter to capture free text responses.


where question ID 9999 is a free text question.

Redirecting The User To Another Page Post-Submit

Use the `redirect` parameter if you want to configure a custom redirect URL. By default, it will redirect to the referer if there’s any, otherwise, it will just display a thank you message.


Saving Custom Data with Responses Via API

Any other query string parameter will be saved as custom data.


Testing Surveys In Draft Mode Via API

You can use `preview_mode=true` if you want to test draft surveys.



  • Expired or Paused surveys won’t be able to collect data via API and will show an error message if attempted

How To Gather Question and Answer IDs

In order to easily gather the appropriate question and answer IDs, you can navigate to the appropriate survey in the console and then append /url_builder/ after the survey ID like so:


Cross Channel Surveys

If a user answers a survey on a work computer, you don’t want to ask the same user the same question again just because she is on her personal mobile device. Pulse Insights provides a method to:

  1. Link multiple devices deterministically
  2. Decision surveys based on who the person is instead of just the device

Linking Devices

To link devices, you need to inform Pulse Insights who the current user is by passing her client key:

pi(‘identify_client’, ‘CLIENT_KEY’);

You only need to do this once per device.

Decisioning based on client key

Once a cross-device linkage is created, Pulse Insights can decision based on the person instead of just the device. If the client key is passed as a parameter of the /serve call, Pulse Insights will decision based on the client key instead of the device UDID.

  • If the person has already answered, she will not be asked again
  • Pulse Insights will consider properties of all devices in targeting criteria. For example, if you’d like to ask a question after a certain number of visits, Pulse Insights can consider visits across devices.


Client key is included as a column in reporting so you can easily pivot based on the person.

Progressive Profiling Engine

Common configuration differences with 360 Insights

— Because questions are targeted to specific individuals, using CRM targeting is commonly used to ask only the right people to update their profile information.
— Clients will need to push user attributes to Pulse Insights including the client_key described above and any other data or segments that will be used to determine eligibility.
— Questions can be channel-specific (e.g., only asking about mobile preferences in mobile channels) or cross-channel.

Integrating Pulse Insights data into CRMs

Because CRM setups tend to vary from client to client, CRM integrations are configured and managed by Pulse Insights Tech Ops. Get in touch with your account team if you need to add or make changes to your CRM integration.

Pulse Insights supports the following integration methods:
— Real-time API call upon question submissions
— Hourly/daily feed placed on client’s or Pulse Insights’ sftp server
— JavaScript callouts on question submissions