skipp_desk 0.2.0 copy "skipp_desk: ^0.2.0" to clipboard
skipp_desk: ^0.2.0 copied to clipboard

Flutter host for the Skipp Desk support widget.

Skipp Desk for Flutter #

Skipp Desk is intentionally a small integration. Start with the basic setup and only add trusted identity if your product needs stronger identity assurance.

Step 1: Install and open support #

flutter pub add skipp_desk
import 'package:skipp_desk/skipp_desk.dart';

SkippDeskWidget(
  workspaceId: 'your-workspace-id',
  apiBaseUrl: 'https://api.zirrodesk.com',
  user: SkippDeskUser(id: currentUser.id, email: currentUser.email),
  onClose: () => Navigator.of(context).pop(),
)

That is the complete normal integration. workspaceId is public configuration, and user is optional. Supplying it avoids asking a signed-in customer for the same details again. Never put a private server key in a mobile application.

Present the widget as a full-screen route or sheet owned by the host app.

Logout and account switching #

Changing user.id automatically isolates the next customer's support state. To explicitly clear support state during logout, provide a controller:

final desk = SkippDeskController();

SkippDeskWidget(
  controller: desk,
  workspaceId: workspaceId,
  apiBaseUrl: apiBaseUrl,
)

await desk.reset();
await signOut();

Trusted identity (optional) #

The basic integration remains valid. For verified customer identity, create a signing secret in Skipp Desk's Widget installation panel, keep it on your backend, and sign a short-lived HS256 JWT with these claims:

{
  "kind": "widget_identity",
  "sub": "your-stable-customer-id",
  "workspace_id": "your-workspace-id",
  "name": "Ada",
  "email": "ada@example.com",
  "iat": 1785859200,
  "exp": 1785862800
}

The lifetime must not exceed 24 hours. Pass the token returned by your backend:

SkippDeskWidget(
  workspaceId: workspaceId,
  apiBaseUrl: 'https://api.zirrodesk.com',
  user: currentUser,
  identityToken: tokenFromYourBackend,
)

External article links open in the platform browser by default. Override onOpenExternalUrl to use your own in-app browser or URL allow-list.

Local development #

Pass mobileUrl: 'http://localhost:5174/mobile.html' and widgetScriptUrl: 'http://localhost:5174/src/main.ts'. A physical phone cannot reach the development machine through localhost; use its LAN address.

Release checks #

flutter analyze
flutter test
dart pub publish --dry-run
0
likes
140
points
105
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Flutter host for the Skipp Desk support widget.

Repository (GitHub)
View/report issues

Topics

#customer-support #help-desk #widget #webview

License

MIT (license)

Dependencies

flutter, url_launcher, webview_flutter

More

Packages that depend on skipp_desk