SDKs

Add ServQuik to your app.

Each platform has its own SDK. You init with the organization license key from the portal. Agents signed into that org are the only people who can see the device. The live view starts only after the customer enters the 6-digit code. The SDK connects on its own — you do not pass a server URL.

License key

Sign in at app.servquik.io, open Connect, and copy the key (sq_live_ plus 32 hex characters). A key from org A never appears for org B.

Unique user ID

Pass the same ID the agent will look up — 3 to 64 characters, no spaces. Set it after login. Do not invent a guest UUID on every launch.

Hide payments

Call blockScreen when a payment or WebView opens. Call unblockScreen when that screen closes. The shopper still sees the real UI. The agent does not.

How to integrate

The same sequence on every platform. The SDK draws the consent overlay and connects by itself. You do not pass a server URL.

  1. Register the organization at servquik.io and sign in at app.servquik.io.
  2. Open Connect and copy the license key (sq_live_ plus 32 hex characters). Do not commit a real key.
  3. Add the SDK for your app (tabs below).
  4. After the shopper signs in, call init with that key, a stable userId (3–64 characters, no spaces), and a display name. This is the ID the agent looks up. Do not mint a new guest id on every launch.
  5. When the shopper logs out, call stop. When they log in again, call init or setUser with the same id.
  6. If an agent requests a live view, the SDK shows a 6-digit code overlay. The live view starts only after the shopper enters the code and allows it. You do not build that overlay.
  7. On checkout, payment, or in-app WebViews, call blockScreen. When that screen closes, call unblockScreen.

Shared API

Names differ slightly by language. The behaviour is the same. init already connects — you only call start after stop.

CallWhen to use it
initOnce after login. Pass licenseKey, userId, optional displayName and appVersion. Invalid keys do not stay connected.
startReconnect after stop. Not required right after init.
stopLogout or when you want the device off the portal list.
setUserThe shopper’s id or name changed after init (for example they edited their profile).
isConnectedtrue when this device is listed for the org. Use it for a “Live support ready” chip.
blockScreenA sensitive screen is on screen (checkout, payment, bank WebView).
unblockScreenThat screen is gone. Pair this with the screen’s close / dispose / cleanup.
deviceInfoOptional. Returns device name, OS version, and platform for your own UI.

Hide a screen from the agent

blockScreen is a single on/off switch for what the agent sees. The shopper still uses the real checkout. The portal shows Blocked for security reasons until you call unblockScreen.

  • Turn it on when the sensitive screen appears. Turn it off when that screen disappears.
  • It is not a stack. Two screens both calling block, then one calling unblock, will show the remaining screen to the agent. Keep one owner: the route that is visible.
  • If you forget unblockScreen, the rest of the session stays hidden from support.
  • The optional reason (usually webview) is a tag. It does not change the shopper UI.
  • You do not pass a URL or capture settings. The SDK handles that.
Platforms

Install and usage

Pick the SDK that matches the app. Each tab has install, init after login, and how to hide checkout. Full READMEs live in the GitLab repos.

Kotlin · minSdk 24 · gitlab.com/Serbus/servquik-sdk-android · tag 0.1.2

Install

In settings.gradle.kts add JitPack, then in the app module:

dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
        maven { url = uri("https://jitpack.io") }
    }
}

// app/build.gradle.kts
dependencies {
    implementation("com.gitlab.Serbus:servquik-sdk-android:0.1.2")
}

minSdk 24. The library requests INTERNET. From source instead of JitPack: implementation(project(":servquik")).

Init after login

Call init once the shopper has a stable user ID. Safe from Application or after your login activity succeeds. Do not call it with a placeholder key.

ServQuik.init(
    context,
    ServQuikConfig(
        licenseKey = "sq_live_YOUR_LICENSE_KEY",
        userId = shopperId,
        displayName = "Asha",
        appVersion = "1.0.0",
    ),
)

Optional listener: onInvalidLicense, onConnected, onError. If the shopper’s name changes later, call ServQuik.setUser(shopperId, name). On logout call ServQuik.stop().

Hide checkout from the agent

Block in onCreate of the payment activity. Unblock in onDestroy so a configuration change that finishes the activity does not leave the session blocked.

class CheckoutActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        ServQuik.blockScreen("webview")
        // setContentView / WebView …
    }

    override fun onDestroy() {
        ServQuik.unblockScreen()
        super.onDestroy()
    }
}

API

CallNotes
init(context, ServQuikConfig)Activates the key and lists the device. userId is required.
start() / stop()Reconnect or drop the device from the list.
setUser(userId, displayName)After profile edits.
isConnected()For a header chip.
blockScreen(reason) / unblockScreen()Pair with the payment activity lifecycle.
deviceInfo()deviceName, osVersion, platform.

Need a hand wiring this into a host app? Email support@servquik.io.