The Javascript API

Using the Javascript API to specify user IDs and custom properties

Using Informizely's Javascript API you, or your developer, can associate any number of custom properties ("name-value" pairs) with a response. Each custom property that is set on a page where a survey is shown is displayed in the responses view for the survey. These custom properties can also be used to target your surveys against.

Example

You want to show a survey only to visitors that made a purchase in the last 7 days. Informizely can't know whether this is the case, but your website knows this. In this case your website could, using the Javascript API, set the custom property made-purchase to the value yes. In the survey's targeting settings you would then add the custom property "made-purchase=yes". Note that you can set any number of custom properties and that the texts used in the name-value pair are completely up to you. Informizely does not interpret these texts in any way, other than to match them with the currently set custom properties.

User identification

If your website has registered users, and you want to target your survey to some or all registered users, or to unidentified users, you could use custom properties, like in the example above. But especially for this case Informizely's Javascript API has a special setting. Your website can set the current user's ID to any identifying property, e.g. the user's email address or customer ID. You can then target your survey to some or all identified users, or to unidentified users, using the survey's target setting "Target (un)identified users". The user ID will be shown in the response view for all responses where it was set.

Using the Javascript API

It's very simple to pass data to the Informizely widget using the Javascript API: first you retrieve a handle to the "api" object, and then you call the appropriate functions on it.

Note: the term "insitez" used below refers to the previous name of Informizely.

To retrieve the "api" object, add the following code directly before the normal Informizely code snippet:

To set the user ID, call api.set('userId', '<<<USER-ID>>>'), where <<<USER-ID>>> is replaced with the current user's identifying property, e.g. his email address.
To set one or more custom properties, call api.set('custom', { <<<name-value-pairs>>> }), where <<<name-value-pairs>>> is replaced by one or more 'name':'value' pairs, separated by commas.

These API functions can be called any number of times. At every call the Informizely widget will check if there are surveys to be displayed.

Complete example



Targeting on custom properties

You can target a survey on custom properties on the survey's "Target" tab.
When using custom properties for targeting, mostly one name=value pair is used, e.g. showSurvey=true. You can specify multiple name=value pairs by placing them on separate lines:
language=en country=UK
By default newlines are interpreted as AND, so the survey is only eligible to be shown when all custom properties match their specified value. You can specify multiple name=value pairs on one line, separated by a comma, indicating that at least one of the values must match, i.e. the commas are interpreted as OR. The following specifies that property "language" must have the value "en" AND that property "country" must have either the value "UK" OR "US".
language=en country=UK, country=US
You can change the interpretation of newlines to OR and that of commas to AND by specifying OR-AND on the first line. The following specifies that the survey is eligible to be shown when the custom property "country" has the value "UK" OR when "country" has the value "US" AND property "language" has the value "en":
OR-AND country=UK country=US, language=en

Special values:
  • To specify that a property must be present (set) but the value is irrelevant, leave the value empty: property=.
  • To specify that a property must not be present, set the value to "missing": property=missing.
  • To specify that a property must not have the value "X", use the NOT() function: property=NOT(X).
  • To match the value of a property to a regular expression, use the REGEX() function. Some examples:
    property=REGEX(term) matches all values that include the text "term". E.g. "terminal".
    property=REGEX(^term) matches all values that start with the text "term". E.g. "terminal", but not "short-term".
    property=REGEX(term$) matches all values that end with the text "term". E.g. "short-term", but not "terminal".
    property=REGEX(term.+) matches all values that include the text "term", followed by at least one other character. E.g. "term12", but not "term".