Client SDK

The client SDK is the code that runs in your application if you want to recruit in-app.

How do I install Orbital on my website?

Please refer to the dedicated Install Client SDK Guide

I use TypeScript, do you have any type definitions I can use?

The module version of the client sdk comes with typescript support out of the box. Types are not available for integrations via the tracking snippet or Google Tag Manager.

How do I identify users?

Note: This is only required if you have configured a discovery to recruit from a specific segment. Please refer to Orbital: Target a User Segment.

// note that we onle require either user ID and email
orbital('identify', {
  userId: '<user-id>' // unique
  email: '<email>', // unique
  name: '<name>' // (optional) used to populate the scheduling form
  greetingName: '<greeting-name>' // (optional) used to personalize the initial prompt
  phone: '<phone>' // (optional) used to populate the scheduling form
})

How do I reset the client in case the user logs out?

orbital('reset')

How do I manually bring up a discovery dialog?

Notes:

  • You can find the discovery ID from the discovery show page's URL in Orbital's admin UI.
  • The determination of whether to display the popup happens after this call – it will only display for a given user if 1) they are eligible to participate in the discovery based on your targeting criteria, 2) they have not been recruited recently (it will respect the cool down period setting), and 3) if there are still available interview slots within your configured window.
orbital('trigger', '<discovery-id>')

Testing: You should never set force: true in production, but you can use it for testing in your browser's dev console to bypass all recruiting criteria and see how the popup will appear:

orbital('trigger', '<discovery-id>', { force: true })

How do you make use of cookies in the client?

We don’t make use of cookies.

How do you make use of other storage techniques in the client?

We leverage localStorage within end-users' web browsers to remember a unique ID. This ID is used to re-identify users after page reloads in case users were not otherwise identified. This identification is necessary to avoid showing the same user the same discovery dialog multiple times.

We use some additional items in localStorage for caching.

All Orbital related localStorage items are prefixed with orbital-

How can we request data removal in case of GDPR deletion requests?

You can contact us at privacy@useorbital.com and we will make sure to process the request within five working days.

What is the performance impact of the client?

The client is…

  • very small <10kb
  • served by Vercel's excellent Content-Delivery network
  • can be cached
  • is loaded with the async flag

All of this is done to avoid impacting your page loads as much as possible. On top of this, Orbital's client API (orbital(...)) is usable before the main script has loaded!

Can I customize the Orbital client?

Customizing screen position, color scheme, text and more

These can all be accomplished from Orbital admin

Using your own popup

If you want to use your own popup, you can trigger the Orbital client and tell it to skip the popup.

orbital('trigger', '<discovery-id>', { skipInitialPrompt: true })

Was this page helpful?